From b40f9bd37abc96d579f930dee9e6fb95031d74f0 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Wed, 6 Jul 2011 00:26:32 -0700 Subject: Refactoring color profile to bring more internal. Help to prep for optional lcms2 support. (bzr r10420) --- src/color-profile-fns.h | 1 - src/color-profile.cpp | 261 ++++++++++++++++++++++----------- src/color-profile.h | 32 ++-- src/interface.cpp | 4 - src/ui/dialog/document-properties.cpp | 60 +++----- src/ui/dialog/inkscape-preferences.cpp | 4 +- src/widgets/sp-color-icc-selector.h | 8 +- src/widgets/sp-color-notebook.cpp | 3 +- 8 files changed, 213 insertions(+), 160 deletions(-) diff --git a/src/color-profile-fns.h b/src/color-profile-fns.h index defc58f2c..3d22417f6 100644 --- a/src/color-profile-fns.h +++ b/src/color-profile-fns.h @@ -38,7 +38,6 @@ std::vector colorprofile_get_display_names(); std::vector colorprofile_get_softproof_names(); Glib::ustring get_path_for_profile(Glib::ustring const& name); -void colorprofile_load_profiles(bool force_refresh = false); #endif diff --git a/src/color-profile.cpp b/src/color-profile.cpp index 4dc4d5bd8..7c9e83e3c 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -24,6 +24,10 @@ #include #endif +#if ENABLE_LCMS +#include +#endif // ENABLE_LCMS + #include "xml/repr.h" #include "color.h" #include "color-profile.h" @@ -42,12 +46,15 @@ using Inkscape::ColorProfile; using Inkscape::ColorProfileClass; +using Inkscape::ColorProfileImpl; -namespace Inkscape +namespace { #if ENABLE_LCMS -static cmsHPROFILE colorprofile_get_system_profile_handle(); -static cmsHPROFILE colorprofile_get_proof_profile_handle(); +cmsHPROFILE getSystemProfileHandle(); +cmsHPROFILE getProofProfileHandle(); +void loadProfiles(); +Glib::ustring getNameFromProfile(cmsHPROFILE profile); #endif // ENABLE_LCMS } @@ -93,20 +100,57 @@ extern guint update_in_progress; static SPObjectClass *cprof_parent_class; + +class ColorProfileImpl { +public: + static cmsHPROFILE _sRGBProf; + static cmsHPROFILE _NullProf; + + ColorProfileImpl(); + #if ENABLE_LCMS + static DWORD _getInputFormat( icColorSpaceSignature space ); + + static cmsHPROFILE getNULLProfile(); + static cmsHPROFILE getSRGBProfile(); -cmsHPROFILE ColorProfile::_sRGBProf = 0; + void _clearProfile(); -cmsHPROFILE ColorProfile::getSRGBProfile() { + cmsHPROFILE _profHandle; + icProfileClassSignature _profileClass; + icColorSpaceSignature _profileSpace; + cmsHTRANSFORM _transf; + cmsHTRANSFORM _revTransf; + cmsHTRANSFORM _gamutTransf; +#endif // ENABLE_LCMS +}; + +ColorProfileImpl::ColorProfileImpl() : +#if ENABLE_LCMS + _profHandle(0), + _profileClass(icSigInputClass), + _profileSpace(icSigRgbData), + _transf(0), + _revTransf(0), + _gamutTransf(0) +#endif // ENABLE_LCMS +{ +} + +#if ENABLE_LCMS + +cmsHPROFILE ColorProfileImpl::_sRGBProf = 0; + +cmsHPROFILE ColorProfileImpl::getSRGBProfile() { if ( !_sRGBProf ) { _sRGBProf = cmsCreate_sRGBProfile(); } - return _sRGBProf; + return ColorProfileImpl::_sRGBProf; } -cmsHPROFILE ColorProfile::_NullProf = 0; +cmsHPROFILE ColorProfileImpl::_NullProf = 0; -cmsHPROFILE ColorProfile::getNULLProfile() { +cmsHPROFILE ColorProfileImpl::getNULLProfile() { if ( !_NullProf ) { _NullProf = cmsCreateNULLProfile(); } @@ -162,19 +206,13 @@ void ColorProfile::classInit( ColorProfileClass *klass ) */ void ColorProfile::init( ColorProfile *cprof ) { + cprof->impl = new ColorProfileImpl(); + cprof->href = 0; cprof->local = 0; cprof->name = 0; cprof->intentStr = 0; cprof->rendering_intent = Inkscape::RENDERING_INTENT_UNKNOWN; -#if ENABLE_LCMS - cprof->profHandle = 0; - cprof->_profileClass = icSigInputClass; - cprof->_profileSpace = icSigRgbData; - cprof->_transf = 0; - cprof->_revTransf = 0; - cprof->_gamutTransf = 0; -#endif // ENABLE_LCMS } /** @@ -209,12 +247,15 @@ void ColorProfile::release( SPObject *object ) } #if ENABLE_LCMS - cprof->_clearProfile(); + cprof->impl->_clearProfile(); #endif // ENABLE_LCMS + + delete cprof->impl; + cprof->impl = 0; } #if ENABLE_LCMS -void ColorProfile::_clearProfile() +void ColorProfileImpl::_clearProfile() { _profileSpace = icSigRgbData; @@ -230,9 +271,9 @@ void ColorProfile::_clearProfile() cmsDeleteTransform( _gamutTransf ); _gamutTransf = 0; } - if ( profHandle ) { - cmsCloseProfile( profHandle ); - profHandle = 0; + if ( _profHandle ) { + cmsCloseProfile( _profHandle ); + _profHandle = 0; } } #endif // ENABLE_LCMS @@ -309,13 +350,13 @@ void ColorProfile::set( SPObject *object, unsigned key, gchar const *value ) // the w3c specs. All absolute and relative issues are considered org::w3c::dom::URI cprofUri = docUri.resolve(hrefUri); gchar* fullname = g_uri_unescape_string(cprofUri.getNativePath().c_str(), ""); - cprof->_clearProfile(); - cprof->profHandle = cmsOpenProfileFromFile( fullname, "r" ); - if ( cprof->profHandle ) { - cprof->_profileSpace = cmsGetColorSpace( cprof->profHandle ); - cprof->_profileClass = cmsGetDeviceClass( cprof->profHandle ); + cprof->impl->_clearProfile(); + cprof->impl->_profHandle = cmsOpenProfileFromFile( fullname, "r" ); + if ( cprof->impl->_profHandle ) { + cprof->impl->_profileSpace = cmsGetColorSpace( cprof->impl->_profHandle ); + cprof->impl->_profileClass = cmsGetDeviceClass( cprof->impl->_profHandle ); } - DEBUG_MESSAGE( lcmsOne, "cmsOpenProfileFromFile( '%s'...) = %p", fullname, (void*)cprof->profHandle ); + DEBUG_MESSAGE( lcmsOne, "cmsOpenProfileFromFile( '%s'...) = %p", fullname, (void*)cprof->impl->_profHandle ); g_free(escaped); escaped = 0; g_free(fullname); @@ -423,7 +464,7 @@ struct MapMap { DWORD inForm; }; -DWORD ColorProfile::_getInputFormat( icColorSpaceSignature space ) +DWORD ColorProfileImpl::_getInputFormat( icColorSpaceSignature space ) { MapMap possible[] = { {icSigXYZData, TYPE_XYZ_16}, @@ -498,7 +539,7 @@ cmsHPROFILE Inkscape::colorprofile_get_handle( SPDocument* document, guint* inte SPObject* thing = bruteFind( document, name ); if ( thing ) { - prof = COLORPROFILE(thing)->profHandle; + prof = COLORPROFILE(thing)->impl->_profHandle; } if ( intent ) { @@ -510,35 +551,43 @@ cmsHPROFILE Inkscape::colorprofile_get_handle( SPDocument* document, guint* inte return prof; } +icColorSpaceSignature ColorProfile::getColorSpace() const { + return impl->_profileSpace; +} + +icProfileClassSignature ColorProfile::getProfileClass() const { + return impl->_profileClass; +} + cmsHTRANSFORM ColorProfile::getTransfToSRGB8() { - if ( !_transf && profHandle ) { + if ( !impl->_transf && impl->_profHandle ) { int intent = getLcmsIntent(rendering_intent); - _transf = cmsCreateTransform( profHandle, _getInputFormat(_profileSpace), getSRGBProfile(), TYPE_BGRA_8, intent, 0 ); + impl->_transf = cmsCreateTransform( impl->_profHandle, ColorProfileImpl::_getInputFormat(impl->_profileSpace), ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, intent, 0 ); } - return _transf; + return impl->_transf; } cmsHTRANSFORM ColorProfile::getTransfFromSRGB8() { - if ( !_revTransf && profHandle ) { + if ( !impl->_revTransf && impl->_profHandle ) { int intent = getLcmsIntent(rendering_intent); - _revTransf = cmsCreateTransform( getSRGBProfile(), TYPE_BGRA_8, profHandle, _getInputFormat(_profileSpace), intent, 0 ); + impl->_revTransf = cmsCreateTransform( ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, impl->_profHandle, ColorProfileImpl::_getInputFormat(impl->_profileSpace), intent, 0 ); } - return _revTransf; + return impl->_revTransf; } cmsHTRANSFORM ColorProfile::getTransfGamutCheck() { - if ( !_gamutTransf ) { - _gamutTransf = cmsCreateProofingTransform(getSRGBProfile(), TYPE_BGRA_8, getNULLProfile(), TYPE_GRAY_8, profHandle, INTENT_RELATIVE_COLORIMETRIC, INTENT_RELATIVE_COLORIMETRIC, (cmsFLAGS_GAMUTCHECK|cmsFLAGS_SOFTPROOFING)); + if ( !impl->_gamutTransf ) { + impl->_gamutTransf = cmsCreateProofingTransform(ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, ColorProfileImpl::getNULLProfile(), TYPE_GRAY_8, impl->_profHandle, INTENT_RELATIVE_COLORIMETRIC, INTENT_RELATIVE_COLORIMETRIC, (cmsFLAGS_GAMUTCHECK|cmsFLAGS_SOFTPROOFING)); } - return _gamutTransf; + return impl->_gamutTransf; } bool ColorProfile::GamutCheck(SPColor color){ BYTE outofgamut = 0; - + guint32 val = color.toRGBA32(0); guchar check_color[4] = { SP_RGBA32_R_U(val), @@ -586,7 +635,7 @@ static std::vector knownProfiles; std::vector Inkscape::colorprofile_get_display_names() { - colorprofile_load_profiles(); + loadProfiles(); std::vector result; for ( std::vector::iterator it = knownProfiles.begin(); it != knownProfiles.end(); ++it ) { @@ -600,7 +649,7 @@ std::vector Inkscape::colorprofile_get_display_names() std::vector Inkscape::colorprofile_get_softproof_names() { - colorprofile_load_profiles(); + loadProfiles(); std::vector result; for ( std::vector::iterator it = knownProfiles.begin(); it != knownProfiles.end(); ++it ) { @@ -614,7 +663,7 @@ std::vector Inkscape::colorprofile_get_softproof_names() Glib::ustring Inkscape::get_path_for_profile(Glib::ustring const& name) { - colorprofile_load_profiles(); + loadProfiles(); Glib::ustring result; for ( std::vector::iterator it = knownProfiles.begin(); it != knownProfiles.end(); ++it ) { @@ -628,7 +677,7 @@ Glib::ustring Inkscape::get_path_for_profile(Glib::ustring const& name) } #endif // ENABLE_LCMS -std::list ColorProfile::getBaseProfileDirs() { +std::vector ColorProfile::getBaseProfileDirs() { #if ENABLE_LCMS static bool warnSet = false; if (!warnSet) { @@ -636,7 +685,7 @@ std::list ColorProfile::getBaseProfileDirs() { warnSet = true; } #endif // ENABLE_LCMS - std::list sources; + std::vector sources; gchar* base = profile_path("XXX"); { @@ -662,10 +711,10 @@ std::list ColorProfile::getBaseProfileDirs() { // On OS X: { bool onOSX = false; - std::list possible; + std::vector possible; possible.push_back("/System/Library/ColorSync/Profiles"); possible.push_back("/Library/ColorSync/Profiles"); - for ( std::list::const_iterator it = possible.begin(); it != possible.end(); ++it ) { + for ( std::vector::const_iterator it = possible.begin(); it != possible.end(); ++it ) { if ( g_file_test(it->c_str(), G_FILE_TEST_EXISTS) && g_file_test(it->c_str(), G_FILE_TEST_IS_DIR) ) { sources.push_back(it->c_str()); onOSX = true; @@ -738,11 +787,15 @@ static bool isIccFile( gchar const *filepath ) return isIccFile; } -std::list ColorProfile::getProfileFiles() +std::vector ColorProfile::getProfileFiles() { - std::list files; + std::vector files; - std::list sources = ColorProfile::getBaseProfileDirs(); + std::list sources; + { + std::vector tmp = ColorProfile::getBaseProfileDirs(); + sources.insert(sources.begin(), tmp.begin(), tmp.end()); + } for ( std::list::const_iterator it = sources.begin(); it != sources.end(); ++it ) { if ( g_file_test( it->c_str(), G_FILE_TEST_EXISTS ) && g_file_test( it->c_str(), G_FILE_TEST_IS_DIR ) ) { GError *err = 0; @@ -775,7 +828,28 @@ std::list ColorProfile::getProfileFiles() } #if ENABLE_LCMS +#endif // ENABLE_LCMS + +std::vector > ColorProfile::getProfileFilesWithNames() +{ + std::vector > result; + +#if ENABLE_LCMS + std::vector files = getProfileFiles(); + for ( std::vector::const_iterator it = files.begin(); it != files.end(); ++it ) { + cmsHPROFILE hProfile = cmsOpenProfileFromFile(it->c_str(), "r"); + if ( hProfile ) { + Glib::ustring name = getNameFromProfile(hProfile); + result.push_back( std::make_pair(*it, name) ); + cmsCloseProfile(hProfile); + } + } +#endif // ENABLE_LCMS + + return result; +} +#if ENABLE_LCMS int errorHandlerCB(int ErrorCode, const char *ErrorText) { g_message("lcms: Error %d; %s", ErrorCode, ErrorText); @@ -783,9 +857,28 @@ int errorHandlerCB(int ErrorCode, const char *ErrorText) return 1; } -/* This function loads or refreshes data in knownProfiles. - * Call it at the start of every call that requires this data. */ -void Inkscape::colorprofile_load_profiles(bool force_refresh) +namespace +{ +Glib::ustring getNameFromProfile(cmsHPROFILE profile) +{ + gchar const *name = 0; + if ( profile ) { + name = cmsTakeProductDesc(profile); + if ( !name ) { + name = cmsTakeProductName(profile); + } + if ( name && !g_utf8_validate(name, -1, NULL) ) { + name = _("(invalid UTF-8 string)"); + } + } + return (name) ? name : _("None"); +} + +/** + * This function loads or refreshes data in knownProfiles. + * Call it at the start of every call that requires this data. + */ +void loadProfiles() { static bool error_handler_set = false; if (!error_handler_set) { @@ -794,32 +887,34 @@ void Inkscape::colorprofile_load_profiles(bool force_refresh) } static bool profiles_searched = false; - if (profiles_searched && !force_refresh) return; + if ( !profiles_searched ) { + knownProfiles.clear(); + std::vector files = ColorProfile::getProfileFiles(); - knownProfiles.clear(); - std::list files = ColorProfile::getProfileFiles(); - - for ( std::list::const_iterator it = files.begin(); it != files.end(); ++it ) { - cmsHPROFILE prof = cmsOpenProfileFromFile( it->c_str(), "r" ); - if ( prof ) { - ProfileInfo info( prof, Glib::filename_to_utf8( it->c_str() ) ); - cmsCloseProfile( prof ); - - bool sameName = false; - for ( std::vector::iterator it = knownProfiles.begin(); it != knownProfiles.end(); ++it ) { - if ( it->getName() == info.getName() ) { - sameName = true; - break; + for ( std::vector::const_iterator it = files.begin(); it != files.end(); ++it ) { + cmsHPROFILE prof = cmsOpenProfileFromFile( it->c_str(), "r" ); + if ( prof ) { + ProfileInfo info( prof, Glib::filename_to_utf8( it->c_str() ) ); + cmsCloseProfile( prof ); + prof = 0; + + bool sameName = false; + for ( std::vector::iterator it = knownProfiles.begin(); it != knownProfiles.end(); ++it ) { + if ( it->getName() == info.getName() ) { + sameName = true; + break; + } } - } - if ( !sameName ) { - knownProfiles.push_back(info); + if ( !sameName ) { + knownProfiles.push_back(info); + } } } + profiles_searched = true; } - profiles_searched = true; } +} // namespace static bool gamutWarn = false; static Gdk::Color lastGamutColor("#808080"); @@ -831,12 +926,13 @@ static int lastIntent = INTENT_PERCEPTUAL; static int lastProofIntent = INTENT_PERCEPTUAL; static cmsHTRANSFORM transf = 0; -cmsHPROFILE Inkscape::colorprofile_get_system_profile_handle() +namespace { +cmsHPROFILE getSystemProfileHandle() { static cmsHPROFILE theOne = 0; static Glib::ustring lastURI; - colorprofile_load_profiles(); + loadProfiles(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); Glib::ustring uri = prefs->getString("/options/displayprofile/uri"); @@ -884,12 +980,12 @@ cmsHPROFILE Inkscape::colorprofile_get_system_profile_handle() } -cmsHPROFILE Inkscape::colorprofile_get_proof_profile_handle() +cmsHPROFILE getProofProfileHandle() { static cmsHPROFILE theOne = 0; static Glib::ustring lastURI; - colorprofile_load_profiles(); + loadProfiles(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool which = prefs->getBool( "/options/softproof/enable"); @@ -942,6 +1038,7 @@ cmsHPROFILE Inkscape::colorprofile_get_proof_profile_handle() return theOne; } +} // namespace static void free_transforms(); @@ -988,8 +1085,8 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_transform() } // Fetch these now, as they might clear the transform as a side effect. - cmsHPROFILE hprof = Inkscape::colorprofile_get_system_profile_handle(); - cmsHPROFILE proofProf = hprof ? Inkscape::colorprofile_get_proof_profile_handle() : 0; + cmsHPROFILE hprof = getSystemProfileHandle(); + cmsHPROFILE proofProf = hprof ? getProofProfileHandle() : 0; if ( !transf ) { if ( hprof && proofProf ) { @@ -1006,9 +1103,9 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_transform() dwFlags |= cmsFLAGS_PRESERVEBLACK; } #endif // defined(cmsFLAGS_PRESERVEBLACK) - transf = cmsCreateProofingTransform( ColorProfile::getSRGBProfile(), TYPE_BGRA_8, hprof, TYPE_BGRA_8, proofProf, intent, proofIntent, dwFlags ); + transf = cmsCreateProofingTransform( ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, hprof, TYPE_BGRA_8, proofProf, intent, proofIntent, dwFlags ); } else if ( hprof ) { - transf = cmsCreateTransform( ColorProfile::getSRGBProfile(), TYPE_BGRA_8, hprof, TYPE_BGRA_8, intent, 0 ); + transf = cmsCreateTransform( ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, hprof, TYPE_BGRA_8, intent, 0 ); } } @@ -1149,7 +1246,7 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_per( Glib::ustring const& id ) } // Fetch these now, as they might clear the transform as a side effect. - cmsHPROFILE proofProf = item.hprof ? Inkscape::colorprofile_get_proof_profile_handle() : 0; + cmsHPROFILE proofProf = item.hprof ? getProofProfileHandle() : 0; if ( !item.transf ) { if ( item.hprof && proofProf ) { @@ -1166,9 +1263,9 @@ cmsHTRANSFORM Inkscape::colorprofile_get_display_per( Glib::ustring const& id ) dwFlags |= cmsFLAGS_PRESERVEBLACK; } #endif // defined(cmsFLAGS_PRESERVEBLACK) - item.transf = cmsCreateProofingTransform( ColorProfile::getSRGBProfile(), TYPE_BGRA_8, item.hprof, TYPE_BGRA_8, proofProf, intent, proofIntent, dwFlags ); + item.transf = cmsCreateProofingTransform( ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, item.hprof, TYPE_BGRA_8, proofProf, intent, proofIntent, dwFlags ); } else if ( item.hprof ) { - item.transf = cmsCreateTransform( ColorProfile::getSRGBProfile(), TYPE_BGRA_8, item.hprof, TYPE_BGRA_8, intent, 0 ); + item.transf = cmsCreateTransform( ColorProfileImpl::getSRGBProfile(), TYPE_BGRA_8, item.hprof, TYPE_BGRA_8, intent, 0 ); } } diff --git a/src/color-profile.h b/src/color-profile.h index e1dd298bd..a1b83bbef 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -23,6 +23,8 @@ enum { RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5 }; +class ColorProfileImpl; + /// The SPColorProfile vtable. struct ColorProfileClass { SPObjectClass parent_class; @@ -30,17 +32,17 @@ struct ColorProfileClass { /** Color Profile. */ struct ColorProfile : public SPObject { + friend cmsHPROFILE colorprofile_get_handle( SPDocument*, guint*, gchar const* ); + static GType getType(); static void classInit( ColorProfileClass *klass ); - static std::list getBaseProfileDirs(); - static std::list getProfileFiles(); + static std::vector getBaseProfileDirs(); + static std::vector getProfileFiles(); + static std::vector > getProfileFilesWithNames(); #if ENABLE_LCMS - static cmsHPROFILE getSRGBProfile(); - static cmsHPROFILE getNULLProfile(); - - icColorSpaceSignature getColorSpace() const {return _profileSpace;} - icProfileClassSignature getProfileClass() const {return _profileClass;} + icColorSpaceSignature getColorSpace() const; + icProfileClassSignature getProfileClass() const; cmsHTRANSFORM getTransfToSRGB8(); cmsHTRANSFORM getTransfFromSRGB8(); cmsHTRANSFORM getTransfGamutCheck(); @@ -53,9 +55,6 @@ struct ColorProfile : public SPObject { gchar* name; gchar* intentStr; guint rendering_intent; -#if ENABLE_LCMS - cmsHPROFILE profHandle; -#endif // ENABLE_LCMS private: static void init( ColorProfile *cprof ); @@ -64,19 +63,8 @@ private: static void build( SPObject *object, SPDocument *document, Inkscape::XML::Node *repr ); static void set( SPObject *object, unsigned key, gchar const *value ); static Inkscape::XML::Node *write( SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags ); -#if ENABLE_LCMS - static DWORD _getInputFormat( icColorSpaceSignature space ); - void _clearProfile(); - static cmsHPROFILE _sRGBProf; - static cmsHPROFILE _NullProf; - - icProfileClassSignature _profileClass; - icColorSpaceSignature _profileSpace; - cmsHTRANSFORM _transf; - cmsHTRANSFORM _revTransf; - cmsHTRANSFORM _gamutTransf; -#endif // ENABLE_LCMS + ColorProfileImpl *impl; }; } // namespace Inkscape diff --git a/src/interface.cpp b/src/interface.cpp index c7946cf18..9aa5cad31 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -56,10 +56,6 @@ #include "message-context.h" #include "ui/uxmanager.h" -// Added for color drag-n-drop -#if ENABLE_LCMS -#include "lcms.h" -#endif // ENABLE_LCMS #include "display/sp-canvas.h" #include "color.h" #include "svg/svg-color.h" diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index 569dd2311..5d32839cb 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -43,8 +43,6 @@ #include "xml/repr.h" #if ENABLE_LCMS -#include -//#include "color-profile-fns.h" #include "color-profile.h" #endif // ENABLE_LCMS @@ -309,53 +307,29 @@ DocumentProperties::build_snap() } #if ENABLE_LCMS -static void -lcms_profile_get_name (cmsHPROFILE profile, const gchar **name) -{ - if (profile) - { - *name = cmsTakeProductDesc (profile); - - if (! *name) - *name = cmsTakeProductName (profile); - - if (*name && ! g_utf8_validate (*name, -1, NULL)) - *name = _("(invalid UTF-8 string)"); - } - else - { - *name = _("None"); - } -} - -void -DocumentProperties::populate_available_profiles(){ +void DocumentProperties::populate_available_profiles(){ Glib::ListHandle children = _menu.get_children(); for ( Glib::ListHandle::iterator it2 = children.begin(); it2 != children.end(); ++it2 ) { _menu.remove(**it2); delete(*it2); } - std::list files = ColorProfile::getProfileFiles(); - for ( std::list::const_iterator it = files.begin(); it != files.end(); ++it ) { - cmsHPROFILE hProfile = cmsOpenProfileFromFile(it->c_str(), "r"); - if ( hProfile ){ - const gchar* name = 0; - lcms_profile_get_name(hProfile, &name); - Gtk::MenuItem* mi = manage(new Gtk::MenuItem()); - mi->set_data("filepath", g_strdup(it->c_str())); - mi->set_data("name", g_strdup(name)); - Gtk::HBox *hbox = manage(new Gtk::HBox()); - hbox->show(); - Gtk::Label* lbl = manage(new Gtk::Label(name)); - lbl->show(); - hbox->pack_start(*lbl, true, true, 0); - mi->add(*hbox); - mi->show_all(); - _menu.append(*mi); -// g_free((void*)name); - cmsCloseProfile(hProfile); - } + std::vector > pairs = ColorProfile::getProfileFilesWithNames(); + for ( std::vector >::const_iterator it = pairs.begin(); it != pairs.end(); ++it ) { + Glib::ustring file = it->first; + Glib::ustring name = it->second; + + Gtk::MenuItem* mi = manage(new Gtk::MenuItem()); + mi->set_data("filepath", g_strdup(file.c_str())); + mi->set_data("name", g_strdup(name.c_str())); + Gtk::HBox *hbox = manage(new Gtk::HBox()); + hbox->show(); + Gtk::Label* lbl = manage(new Gtk::Label(name)); + lbl->show(); + hbox->pack_start(*lbl, true, true, 0); + mi->add(*hbox); + mi->show_all(); + _menu.append(*mi); } _menu.show_all(); diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 3c272e691..aa3c18aaa 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -906,8 +906,8 @@ void InkscapePreferences::initPageCMS() _page_cms.add_group_header( _("Display adjustment")); Glib::ustring tmpStr; - std::list sources = ColorProfile::getBaseProfileDirs(); - for ( std::list::const_iterator it = sources.begin(); it != sources.end(); ++it ) { + std::vector sources = ColorProfile::getBaseProfileDirs(); + for ( std::vector::const_iterator it = sources.begin(); it != sources.end(); ++it ) { gchar* part = g_strdup_printf( "\n%s", it->c_str() ); tmpStr += part; g_free(part); diff --git a/src/widgets/sp-color-icc-selector.h b/src/widgets/sp-color-icc-selector.h index 9238e3f68..a3915cd48 100644 --- a/src/widgets/sp-color-icc-selector.h +++ b/src/widgets/sp-color-icc-selector.h @@ -8,11 +8,9 @@ #include "sp-color-slider.h" #include "sp-color-selector.h" -#if ENABLE_LCMS -#include "color-profile.h" -#endif // ENABLE_LCMS - - +namespace Inkscape { +struct ColorProfile; +} struct SPColorICCSelector; struct SPColorICCSelectorClass; diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 377abf219..d041f85df 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -37,6 +37,7 @@ #include "../inkscape.h" #include "../document.h" #include "../profile-manager.h" +#include "color-profile.h" struct SPColorNotebookTracker { const gchar* name; @@ -529,7 +530,7 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) if (color.icc){ Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); if ( target_profile ) - gtk_widget_set_sensitive (_box_outofgamut, target_profile->GamutCheck(color)); + gtk_widget_set_sensitive(_box_outofgamut, target_profile->GamutCheck(color)); } /* update too-much-ink icon */ -- cgit v1.2.3 From aa7a997188b7f69017897a93bd153048df6b1dbc Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Wed, 6 Jul 2011 22:59:33 +0200 Subject: Fix mixed up colors when exporting images with bitmaps to PDF and other Cairo formats. Fixes LP #804311 Fixed bugs: - https://launchpad.net/bugs/804311 (bzr r10421) --- src/extension/internal/cairo-render-context.cpp | 65 +++---------------------- src/extension/internal/cairo-render-context.h | 2 +- src/extension/internal/cairo-renderer.cpp | 16 +++--- 3 files changed, 14 insertions(+), 69 deletions(-) diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 1c1dac028..22b68b0ca 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1419,7 +1419,7 @@ CairoRenderContext::renderPathVector(Geom::PathVector const & pathv, SPStyle con return true; } -bool CairoRenderContext::renderImage(guchar *px, unsigned int w, unsigned int h, unsigned int rs, +bool CairoRenderContext::renderImage(GdkPixbuf *pb, Geom::Affine const *image_transform, SPStyle const * /*style*/) { g_assert( _is_valid ); @@ -1428,63 +1428,18 @@ bool CairoRenderContext::renderImage(guchar *px, unsigned int w, unsigned int h, return true; } - guchar* px_rgba = NULL; - guint64 size = 4L * (guint64)w * (guint64)h; + int w = gdk_pixbuf_get_width (pb); + int h = gdk_pixbuf_get_height (pb); - if(size < (guint64)G_MAXSIZE) { - px_rgba = (guchar*)g_try_malloc(4 * w * h); - if (!px_rgba) { - g_warning ("Could not allocate %lu bytes for pixel buffer!", (long unsigned) size); - return false; - } - } else { - g_warning ("the requested memory exceeds the system limit"); - return false; - } - - - float opacity; - if (_state->merge_opacity) - opacity = _state->opacity; - else - opacity = 1.0; - - // make a copy of the original pixbuf with premultiplied alpha - // if we pass the original pixbuf it will get messed up - /// @todo optimize this code, it costs a lot of time - for (unsigned i = 0; i < h; i++) { - guchar const *src = px + i * rs; - guint32 *dst = (guint32 *)(px_rgba + i * rs); - for (unsigned j = 0; j < w; j++) { - guchar r, g, b, alpha_dst; - - // calculate opacity-modified alpha - alpha_dst = src[3]; - if ((opacity != 1.0) && _vector_based_target) - alpha_dst = (guchar)ceil((float)alpha_dst * opacity); - - // premul alpha (needed because this will be undone by cairo-pdf) - r = src[0]*alpha_dst/255; - g = src[1]*alpha_dst/255; - b = src[2]*alpha_dst/255; - - *dst = (((alpha_dst) << 24) | (((r)) << 16) | (((g)) << 8) | (b)); - - dst++; // pointer to 4byte variables - src += 4; // pointer to 1byte variables - } - } + // TODO: reenable merge_opacity if useful + float opacity = _state->opacity; - cairo_surface_t *image_surface = cairo_image_surface_create_for_data(px_rgba, CAIRO_FORMAT_ARGB32, w, h, w * 4); + cairo_surface_t *image_surface = ink_cairo_surface_create_for_argb32_pixbuf(pb); if (cairo_surface_status(image_surface)) { TRACE(("Image surface creation failed:\n%s\n", cairo_status_to_string(cairo_surface_status(image_surface)))); return false; } - // setup automatic freeing of the image data when destroying the surface - static cairo_user_data_key_t key; - cairo_surface_set_user_data(image_surface, &key, px_rgba, (cairo_destroy_func_t)g_free); - cairo_save(_cr); // scaling by width & height is not needed because it will be done by Cairo @@ -1499,16 +1454,10 @@ bool CairoRenderContext::renderImage(guchar *px, unsigned int w, unsigned int h, cairo_rectangle(_cr, 0, 0, w, h); cairo_clip(_cr); } - - if (_vector_based_target) - cairo_paint(_cr); - else - cairo_paint_with_alpha(_cr, opacity); + cairo_paint_with_alpha(_cr, opacity); cairo_restore(_cr); - cairo_surface_destroy(image_surface); - return true; } diff --git a/src/extension/internal/cairo-render-context.h b/src/extension/internal/cairo-render-context.h index 68a3c6537..d4117ff7e 100644 --- a/src/extension/internal/cairo-render-context.h +++ b/src/extension/internal/cairo-render-context.h @@ -139,7 +139,7 @@ public: /* Rendering methods */ bool renderPathVector(Geom::PathVector const & pathv, SPStyle const *style, NRRect const *pbox); - bool renderImage(unsigned char *px, unsigned int w, unsigned int h, unsigned int rs, + bool renderImage(GdkPixbuf *pb, Geom::Affine const *image_transform, SPStyle const *style); bool renderGlyphtext(PangoFont *font, Geom::Affine const *font_matrix, std::vector const &glyphtext, SPStyle const *style); diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index bbafd7e94..6118a7ae9 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -41,6 +41,7 @@ #include "display/nr-arena-group.h" #include "display/curve.h" #include "display/canvas-bpath.h" +#include "display/cairo-utils.h" #include "sp-item.h" #include "sp-item-group.h" #include "style.h" @@ -345,18 +346,15 @@ static void sp_flowtext_render(SPItem *item, CairoRenderContext *ctx) static void sp_image_render(SPItem *item, CairoRenderContext *ctx) { SPImage *image; - guchar *px; - int w, h, rs; + int w, h; image = SP_IMAGE (item); if (!image->pixbuf) return; if ((image->width.computed <= 0.0) || (image->height.computed <= 0.0)) return; - px = gdk_pixbuf_get_pixels (image->pixbuf); w = gdk_pixbuf_get_width (image->pixbuf); h = gdk_pixbuf_get_height (image->pixbuf); - rs = gdk_pixbuf_get_rowstride (image->pixbuf); double x = image->x.computed; double y = image->y.computed; @@ -376,7 +374,7 @@ static void sp_image_render(SPItem *item, CairoRenderContext *ctx) Geom::Scale s(width / (double)w, height / (double)h); Geom::Affine t(s * tp); - ctx->renderImage (px, w, h, rs, &t, item->style); + ctx->renderImage (image->pixbuf, &t, item->style); } static void sp_symbol_render(SPItem *item, CairoRenderContext *ctx) @@ -516,11 +514,9 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx) if (pb) { TEST(gdk_pixbuf_save( pb, "bitmap.png", "png", NULL, NULL )); - unsigned char *px = gdk_pixbuf_get_pixels (pb); - unsigned int w = gdk_pixbuf_get_width(pb); - unsigned int h = gdk_pixbuf_get_height(pb); - unsigned int rs = gdk_pixbuf_get_rowstride(pb); - ctx->renderImage(px, w, h, rs, &t, item->style); + // TODO this is stupid - we just converted to pixbuf format when generating the bitmap! + convert_pixbuf_normal_to_argb32(pb); + ctx->renderImage(pb, &t, item->style); gdk_pixbuf_unref(pb); pb = 0; } -- cgit v1.2.3 From 83a4acd5c2c92c42d9ae1d60bccffb4f9f39886d Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Wed, 6 Jul 2011 23:13:12 +0200 Subject: Fix outline mode for text objects (LP #802354). Fixed bugs: - https://launchpad.net/bugs/802354 (bzr r10422) --- src/display/nr-arena-glyphs.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/display/nr-arena-glyphs.cpp b/src/display/nr-arena-glyphs.cpp index dbac07596..089d6de40 100644 --- a/src/display/nr-arena-glyphs.cpp +++ b/src/display/nr-arena-glyphs.cpp @@ -294,26 +294,26 @@ static unsigned int nr_arena_glyphs_group_render(cairo_t *ct, NRArenaItem *item, } if (item->arena->rendermode == Inkscape::RENDERMODE_OUTLINE) { - + cairo_save(ct); guint32 rgba = item->arena->outlinecolor; ink_cairo_set_source_rgba32(ct, rgba); cairo_set_tolerance(ct, 1.25); // low quality, but good enough for outline mode - - NRRect temp(area->x0, area->y0, area->x1, area->y1); - Geom::OptRect area_2geom = temp.upgrade_2geom(); + cairo_new_path(ct); + ink_cairo_transform(ct, ggroup->ctm); for (child = group->children; child != NULL; child = child->next) { NRArenaGlyphs *g = NR_ARENA_GLYPHS(child); Geom::PathVector const * pathv = g->font->PathVector(g->glyph); - Geom::Affine transform = g->g_transform * group->ctm; + Geom::Affine transform = g->g_transform; - cairo_new_path(ct); + cairo_save(ct); ink_cairo_transform(ct, transform); feed_pathvector_to_cairo (ct, *pathv); cairo_fill(ct); + cairo_restore(ct); } - + cairo_restore(ct); return item->state; } -- cgit v1.2.3 From dd472649acce56329d8d5a6f26b0319828f39a2c Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Wed, 6 Jul 2011 23:47:14 +0200 Subject: Fix regression in swatch display (LP #804930). Fixed bugs: - https://launchpad.net/bugs/804930 (bzr r10423) --- src/ui/dialog/color-item.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index 89245575c..3463aa496 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -517,11 +517,13 @@ void ColorItem::_regenPreview(EekPreview * preview) (def.getG() << 8) | def.getG(), (def.getB() << 8) | def.getB() ); } else { - double w; - cairo_pattern_get_linear_points(_pattern, NULL, NULL, &w, NULL); - int width = ceil(w); + // These correspond to PREVIEW_PIXBUF_WIDTH and VBLOCK from swatches.cpp + // TODO: the pattern to draw should be in the widget that draws the preview, + // so the preview can be scalable + int w = 128; + int h = 16; - cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, 1); + cairo_surface_t *s = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h); cairo_t *ct = cairo_create(s); cairo_set_source(ct, _pattern); cairo_paint(ct); @@ -530,7 +532,7 @@ void ColorItem::_regenPreview(EekPreview * preview) GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s), GDK_COLORSPACE_RGB, TRUE, 8, - width, 1, cairo_image_surface_get_stride(s), + w, h, cairo_image_surface_get_stride(s), (GdkPixbufDestroyNotify) cairo_surface_destroy, NULL); convert_pixbuf_argb32_to_normal(pixbuf); eek_preview_set_pixbuf( preview, pixbuf ); -- cgit v1.2.3 From b6e16b1d8f843a9524f311d34afd6ea1da22e579 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Jul 2011 00:47:48 +0000 Subject: fix for building with cmake, renaming the GTK2 package didnt work right, very confusing as to why - I still dont know but calling it the same as CMake's works ok and uses our one. (bzr r10424) --- CMakeScripts/DefineDependsandFlags.cmake | 2 +- CMakeScripts/Modules/FindGTK2.cmake | 596 ++++++++++++++++++++++++++++ CMakeScripts/Modules/FindGTK2_patched.cmake | 596 ---------------------------- CMakeScripts/cmake_consistency_check.py | 5 +- 4 files changed, 599 insertions(+), 600 deletions(-) create mode 100644 CMakeScripts/Modules/FindGTK2.cmake delete mode 100644 CMakeScripts/Modules/FindGTK2_patched.cmake diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 96ff53ff9..88c361020 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -46,7 +46,7 @@ add_definitions(${POPT_DEFINITIONS}) # Include dependencies: # use patched version until GTK2_CAIROMMCONFIG_INCLUDE_DIR is added -find_package(GTK2_patched COMPONENTS gtk gtkmm REQUIRED) +find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${GTK2_GDK_INCLUDE_DIR} ${GTK2_GDKMM_INCLUDE_DIR} diff --git a/CMakeScripts/Modules/FindGTK2.cmake b/CMakeScripts/Modules/FindGTK2.cmake new file mode 100644 index 000000000..91249b787 --- /dev/null +++ b/CMakeScripts/Modules/FindGTK2.cmake @@ -0,0 +1,596 @@ +# *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 +# +# 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 + /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/FindGTK2_patched.cmake b/CMakeScripts/Modules/FindGTK2_patched.cmake deleted file mode 100644 index 91249b787..000000000 --- a/CMakeScripts/Modules/FindGTK2_patched.cmake +++ /dev/null @@ -1,596 +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 -# -# 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 - /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/cmake_consistency_check.py b/CMakeScripts/cmake_consistency_check.py index d70a6a7e9..cf0889b74 100755 --- a/CMakeScripts/cmake_consistency_check.py +++ b/CMakeScripts/cmake_consistency_check.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# $Id: cmake_consistency_check.py 36708 2011-05-16 06:11:14Z gsrb3d $ +# $Id: cmake_consistency_check.py 38013 2011-07-01 12:33:34Z campbellbarton $ # ***** BEGIN GPL LICENSE BLOCK ***** # # This program is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ from cmake_consistency_check_config import IGNORE, UTF8_CHECK, SOURCE_DIR import os -from os.path import join, dirname, normpath, abspath, splitext +from os.path import join, dirname, normpath, splitext print("Scanning:", SOURCE_DIR) @@ -183,7 +183,6 @@ def is_ignore(f): # First do stupid check, do these files exist? print("\nChecking for missing references:") -import sys is_err = False errs = [] for f in (global_h | global_c): -- cgit v1.2.3 From 262ed2816e1faa073e8ca16b7d474100c8a9cf4f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Jul 2011 04:15:46 +0000 Subject: fix for building without LCMS (bzr r10425) --- src/color-profile.cpp | 5 ++++- src/color-profile.h | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/color-profile.cpp b/src/color-profile.cpp index 7c9e83e3c..c2267d827 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -103,8 +103,10 @@ static SPObjectClass *cprof_parent_class; class ColorProfileImpl { public: +#if ENABLE_LCMS static cmsHPROFILE _sRGBProf; static cmsHPROFILE _NullProf; +#endif // ENABLE_LCMS ColorProfileImpl(); @@ -125,8 +127,9 @@ public: #endif // ENABLE_LCMS }; -ColorProfileImpl::ColorProfileImpl() : +ColorProfileImpl::ColorProfileImpl() #if ENABLE_LCMS + : _profHandle(0), _profileClass(icSigInputClass), _profileSpace(icSigRgbData), diff --git a/src/color-profile.h b/src/color-profile.h index a1b83bbef..28096cd20 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -32,8 +32,9 @@ struct ColorProfileClass { /** Color Profile. */ struct ColorProfile : public SPObject { +#if ENABLE_LCMS friend cmsHPROFILE colorprofile_get_handle( SPDocument*, guint*, gchar const* ); - +#endif // ENABLE_LCMS static GType getType(); static void classInit( ColorProfileClass *klass ); -- cgit v1.2.3 From d7f2c863cc8e8543cac3d11cd6017d6f76c82050 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 8 Jul 2011 04:16:55 +0000 Subject: fix for building with dbus and cmake (bzr r10426) --- CMakeScripts/DefineDependsandFlags.cmake | 11 +++++ CMakeScripts/Modules/FindDBus.cmake | 72 ++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 CMakeScripts/Modules/FindDBus.cmake diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 88c361020..40c759741 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -40,6 +40,17 @@ list(APPEND INKSCAPE_INCS_SYS ${POPT_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${POPT_LIBRARIES}) add_definitions(${POPT_DEFINITIONS}) +if(WITH_DBUS) + find_package(DBus REQUIRED) + 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}) + else() + set(WITH_DBUS OFF) + endif() +endif() + # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- diff --git a/CMakeScripts/Modules/FindDBus.cmake b/CMakeScripts/Modules/FindDBus.cmake new file mode 100644 index 000000000..f227cc297 --- /dev/null +++ b/CMakeScripts/Modules/FindDBus.cmake @@ -0,0 +1,72 @@ +# - Try to find the low-level D-Bus library +# Once done this will define +# +# DBUS_FOUND - system has D-Bus +# DBUS_INCLUDE_DIR - the D-Bus include directory +# DBUS_ARCH_INCLUDE_DIR - the D-Bus architecture-specific include directory +# DBUS_LIBRARIES - the libraries needed to use D-Bus + +# Copyright (c) 2008, Kevin Kofler, +# modeled after FindLibArt.cmake: +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + # in cache already + SET(DBUS_FOUND TRUE) + +else (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + IF (NOT WIN32) + FIND_PACKAGE(PkgConfig) + IF (PKG_CONFIG_FOUND) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + pkg_check_modules(_DBUS_PC QUIET dbus-1) + ENDIF (PKG_CONFIG_FOUND) + ENDIF (NOT WIN32) + + FIND_PATH(DBUS_INCLUDE_DIR dbus/dbus.h + ${_DBUS_PC_INCLUDE_DIRS} + /usr/include + /usr/include/dbus-1.0 + /usr/local/include + ) + + FIND_PATH(DBUS_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h + ${_DBUS_PC_INCLUDE_DIRS} + /usr/lib${LIB_SUFFIX}/include + /usr/lib${LIB_SUFFIX}/dbus-1.0/include + /usr/lib64/include + /usr/lib64/dbus-1.0/include + /usr/lib/include + /usr/lib/dbus-1.0/include + ) + + FIND_LIBRARY(DBUS_LIBRARIES NAMES dbus-1 dbus + PATHS + ${_DBUS_PC_LIBDIR} + ) + + + if (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + set(DBUS_FOUND TRUE) + endif (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) + + + if (DBUS_FOUND) + if (NOT DBus_FIND_QUIETLY) + message(STATUS "Found D-Bus: ${DBUS_LIBRARIES}") + endif (NOT DBus_FIND_QUIETLY) + else (DBUS_FOUND) + if (DBus_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find D-Bus") + endif (DBus_FIND_REQUIRED) + endif (DBUS_FOUND) + + MARK_AS_ADVANCED(DBUS_INCLUDE_DIR DBUS_ARCH_INCLUDE_DIR DBUS_LIBRARIES) + +endif (DBUS_INCLUDE_DIR AND DBUS_ARCH_INCLUDE_DIR AND DBUS_LIBRARIES) -- cgit v1.2.3 From 6844f54c33f5783d6ca3cf065748bec84203b171 Mon Sep 17 00:00:00 2001 From: Felipe Corr??a da Silva Sanches Date: Fri, 8 Jul 2011 16:22:58 -0300 Subject: auto-maximize the inkscape extension error dialog so that it is easier to read the error log (bzr r10427) --- src/extension/implementation/script.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 2f3e2cd65..e7599d996 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -855,6 +855,7 @@ void Script::checkStderr (const Glib::ustring &data, vbox->pack_start(*scrollwindow, true, true, 5 /* fix these */); + warning.maximize(); warning.run(); return; -- cgit v1.2.3 From 84c9624fa21cbe41661d76e56ef538936c35490d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 10:05:34 +0100 Subject: String fixes in webslicer Fixed bugs: - https://launchpad.net/bugs/807861 (bzr r10428) --- share/extensions/webslicer_create_group.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/extensions/webslicer_create_group.py b/share/extensions/webslicer_create_group.py index c2de0594b..613162850 100644 --- a/share/extensions/webslicer_create_group.py +++ b/share/extensions/webslicer_create_group.py @@ -55,7 +55,7 @@ class WebSlicer_CreateGroup(WebSlicer_Effect): def get_base_elements(self): self.layer = self.get_slicer_layer() if is_empty(self.layer): - inkex.errormsg(_('You must to create and select some "Slicer rectangles" before try to group.')) + inkex.errormsg(_('You must create and select some "Slicer rectangles" before trying to group.')) exit(3) self.layer_descendants = self.get_descendants_in_array(self.layer) @@ -74,7 +74,7 @@ class WebSlicer_CreateGroup(WebSlicer_Effect): exit(1) for id,node in self.selected.iteritems(): if node not in self.layer_descendants: - inkex.errormsg(_('Opss... The element "%s" is not in the Web Slicer layer') % id) + inkex.errormsg(_('Oops... The element "%s" is not in the Web Slicer layer') % id) exit(2) g_parent = self.getParentNode(node) group = inkex.etree.SubElement(g_parent, 'g') -- cgit v1.2.3 From 2994e0b96e7d5d6d198b3d8139e4134f9d454229 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sat, 9 Jul 2011 02:18:40 -0700 Subject: Next step in refactoring color management. More to come. (bzr r10429) --- src/CMakeLists.txt | 2 ++ src/Makefile_insert | 3 +- src/cms-color-types.h | 58 +++++++++++++++++++++++++++++++++++ src/color-profile-cms-fns.h | 51 ++++++++++++++++++++++++++++++ src/color-profile-fns.h | 16 ++++------ src/color-profile.cpp | 42 ++++++++++++++++++++++--- src/color-profile.h | 23 +++++++++----- src/display/sp-canvas.cpp | 2 +- src/sp-image.cpp | 1 + src/sp-object-repr.cpp | 2 +- src/sp-object.cpp | 2 +- src/svg/svg-color.cpp | 10 ++++-- src/widgets/sp-color-icc-selector.cpp | 11 ++++--- src/widgets/sp-color-notebook.cpp | 9 ++++-- 14 files changed, 195 insertions(+), 37 deletions(-) create mode 100644 src/cms-color-types.h create mode 100644 src/color-profile-cms-fns.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 580d65b0c..11a307037 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -306,7 +306,9 @@ set(inkscape_SRC box3d-context.h box3d-side.h box3d.h + cms-color-types.h color-profile-fns.h + color-profile-cms-fns.h color-profile-test.h color-profile.h color-rgba.h diff --git a/src/Makefile_insert b/src/Makefile_insert index 7d48dba93..d4f96fc87 100644 --- a/src/Makefile_insert +++ b/src/Makefile_insert @@ -12,9 +12,10 @@ ink_common_sources += \ box3d.cpp box3d.h \ box3d-side.cpp box3d-side.h \ brokenimage.xpm \ + cms-color-types.h \ color.cpp color.h \ color-profile.cpp color-profile.h \ - color-profile-fns.h \ + color-profile-fns.h color-profile-cms-fns.h \ color-rgba.h \ common-context.cpp common-context.h \ composite-undo-stack-observer.cpp \ diff --git a/src/cms-color-types.h b/src/cms-color-types.h new file mode 100644 index 000000000..74fdac12c --- /dev/null +++ b/src/cms-color-types.h @@ -0,0 +1,58 @@ +#ifndef SEEN_CMS_COLOR_TYPES_H +#define SEEN_CMS_COLOR_TYPES_H + +/** \file + * A simple abstraction to provide opaque compatibility with either lcms or lcms2. + */ + +#include + + +typedef void * cmsHPROFILE; +typedef void * cmsHTRANSFORM; + +namespace Inkscape { + +/** + * Opaque holder of a 32-bit signature type. + */ +class FourCCSig { +public: + FourCCSig( FourCCSig const &other ) : value(other.value) {}; + +protected: + FourCCSig( guint32 value ) : value(value) {}; + + guint32 value; +}; + +class ColorSpaceSig : public FourCCSig { +public: + ColorSpaceSig( ColorSpaceSig const &other ) : FourCCSig(other) {}; + +protected: + ColorSpaceSig( guint32 value ) : FourCCSig(value) {}; +}; + +class ColorProfileClassSig : public FourCCSig { +public: + ColorProfileClassSig( ColorProfileClassSig const &other ) : FourCCSig(other) {}; + +protected: + ColorProfileClassSig( guint32 value ) : FourCCSig(value) {}; +}; + +} // namespace Inkscape + +#endif // SEEN_CMS_COLOR_TYPES_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/color-profile-cms-fns.h b/src/color-profile-cms-fns.h new file mode 100644 index 000000000..fe0eed392 --- /dev/null +++ b/src/color-profile-cms-fns.h @@ -0,0 +1,51 @@ +#ifndef SEEN_COLOR_PROFILE_CMS_FNS_H +#define SEEN_COLOR_PROFILE_CMS_FNS_H + +#if ENABLE_LCMS +#include +#endif // ENABLE_LCMS + +#include "cms-color-types.h" + +namespace Inkscape { + +#if ENABLE_LCMS + +// Note: these can later be adjusted to adapt for lcms2: + +class ColorSpaceSigWrapper : public ColorSpaceSig { +public : + ColorSpaceSigWrapper( icColorSpaceSignature sig ) : ColorSpaceSig( static_cast(sig) ) {} + ColorSpaceSigWrapper( ColorSpaceSig const &other ) : ColorSpaceSig( other ) {} + + operator icColorSpaceSignature() const { return static_cast(value); } +}; + +class ColorProfileClassSigWrapper : public ColorProfileClassSig { +public : + ColorProfileClassSigWrapper( icProfileClassSignature sig ) : ColorProfileClassSig( static_cast(sig) ) {} + ColorProfileClassSigWrapper( ColorProfileClassSig const &other ) : ColorProfileClassSig( other ) {} + + operator icProfileClassSignature() const { return static_cast(value); } +}; + +icColorSpaceSignature asICColorSpaceSig(ColorSpaceSig const & sig); +icProfileClassSignature asICColorProfileClassSig(ColorProfileClassSig const & sig); + +#endif // ENABLE_LCMS + +} // namespace Inkscape + + +#endif // !SEEN_COLOR_PROFILE_CMS_FNS_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/color-profile-fns.h b/src/color-profile-fns.h index 3d22417f6..0588ce89e 100644 --- a/src/color-profile-fns.h +++ b/src/color-profile-fns.h @@ -10,8 +10,8 @@ #if ENABLE_LCMS #include #include -#include #endif // ENABLE_LCMS +#include "cms-color-types.h" class SPDocument; @@ -23,8 +23,6 @@ class Node; class ColorProfile; -GType colorprofile_get_type(); - #if ENABLE_LCMS cmsHPROFILE colorprofile_get_handle( SPDocument* document, guint* intent, gchar const* name ); @@ -39,15 +37,13 @@ std::vector colorprofile_get_softproof_names(); Glib::ustring get_path_for_profile(Glib::ustring const& name); -#endif +void colorprofile_cmsDoTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size); -} // namespace Inkscape +bool colorprofile_isPrintColorSpace(ColorProfile const *profile); -#define COLORPROFILE_TYPE (Inkscape::colorprofile_get_type()) -#define COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), COLORPROFILE_TYPE, Inkscape::ColorProfile)) -#define COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), COLORPROFILE_TYPE, Inkscape::ColorProfileClass)) -#define IS_COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), COLORPROFILE_TYPE)) -#define IS_COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), COLORPROFILE_TYPE)) +#endif // ENABLE_LCMS + +} // namespace Inkscape #endif // !SEEN_COLOR_PROFILE_FNS_H diff --git a/src/color-profile.cpp b/src/color-profile.cpp index c2267d827..4bc37fdf8 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -32,6 +32,7 @@ #include "color.h" #include "color-profile.h" #include "color-profile-fns.h" +#include "color-profile-cms-fns.h" #include "attributes.h" #include "inkscape.h" #include "document.h" @@ -100,7 +101,6 @@ extern guint update_in_progress; static SPObjectClass *cprof_parent_class; - class ColorProfileImpl { public: #if ENABLE_LCMS @@ -127,6 +127,22 @@ public: #endif // ENABLE_LCMS }; + + +namespace Inkscape { + +icColorSpaceSignature asICColorSpaceSig(ColorSpaceSig const & sig) +{ + return ColorSpaceSigWrapper(sig); +} + +icProfileClassSignature asICColorProfileClassSig(ColorProfileClassSig const & sig) +{ + return ColorProfileClassSigWrapper(sig); +} + +} // namespace Inkscape + ColorProfileImpl::ColorProfileImpl() #if ENABLE_LCMS : @@ -554,12 +570,12 @@ cmsHPROFILE Inkscape::colorprofile_get_handle( SPDocument* document, guint* inte return prof; } -icColorSpaceSignature ColorProfile::getColorSpace() const { - return impl->_profileSpace; +Inkscape::ColorSpaceSig ColorProfile::getColorSpace() const { + return ColorSpaceSigWrapper(impl->_profileSpace); } -icProfileClassSignature ColorProfile::getProfileClass() const { - return impl->_profileClass; +Inkscape::ColorProfileClassSig ColorProfile::getProfileClass() const { + return ColorProfileClassSigWrapper(impl->_profileClass); } cmsHTRANSFORM ColorProfile::getTransfToSRGB8() @@ -678,6 +694,22 @@ Glib::ustring Inkscape::get_path_for_profile(Glib::ustring const& name) return result; } + +void Inkscape::colorprofile_cmsDoTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size) +{ + cmsDoTransform(transform, inBuf, outBuf, size); +} + +bool Inkscape::colorprofile_isPrintColorSpace(ColorProfile const *profile) +{ + bool isPrint = false; + if ( profile ) { + ColorSpaceSigWrapper colorspace = profile->getColorSpace(); + isPrint = (colorspace == icSigCmykData) || (colorspace == icSigCmyData); + } + return isPrint; +} + #endif // ENABLE_LCMS std::vector ColorProfile::getBaseProfileDirs() { diff --git a/src/color-profile.h b/src/color-profile.h index 28096cd20..1b06b6a78 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -5,12 +5,11 @@ * SPColorProfile: SVG implementation */ +#include #include #include #include -#if ENABLE_LCMS -#include -#endif // ENABLE_LCMS +#include "cms-color-types.h" namespace Inkscape { @@ -25,6 +24,7 @@ enum { class ColorProfileImpl; + /// The SPColorProfile vtable. struct ColorProfileClass { SPObjectClass parent_class; @@ -32,9 +32,8 @@ struct ColorProfileClass { /** Color Profile. */ struct ColorProfile : public SPObject { -#if ENABLE_LCMS friend cmsHPROFILE colorprofile_get_handle( SPDocument*, guint*, gchar const* ); -#endif // ENABLE_LCMS + static GType getType(); static void classInit( ColorProfileClass *klass ); @@ -42,8 +41,10 @@ struct ColorProfile : public SPObject { static std::vector getProfileFiles(); static std::vector > getProfileFilesWithNames(); #if ENABLE_LCMS - icColorSpaceSignature getColorSpace() const; - icProfileClassSignature getProfileClass() const; + //icColorSpaceSignature getColorSpace() const; + ColorSpaceSig getColorSpace() const; + //icProfileClassSignature getProfileClass() const; + ColorProfileClassSig getProfileClass() const; cmsHTRANSFORM getTransfToSRGB8(); cmsHTRANSFORM getTransfFromSRGB8(); cmsHTRANSFORM getTransfGamutCheck(); @@ -68,8 +69,16 @@ private: ColorProfileImpl *impl; }; +GType colorprofile_get_type(); + } // namespace Inkscape +#define COLORPROFILE_TYPE (Inkscape::colorprofile_get_type()) +#define COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), COLORPROFILE_TYPE, Inkscape::ColorProfile)) +#define COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), COLORPROFILE_TYPE, Inkscape::ColorProfileClass)) +#define IS_COLORPROFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), COLORPROFILE_TYPE)) +#define IS_COLORPROFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), COLORPROFILE_TYPE)) + #endif // !SEEN_COLOR_PROFILE_H /* diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 3e8a4880c..ea39d3435 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -1683,7 +1683,7 @@ static void sp_canvas_paint_single_buffer(SPCanvas *canvas, int x0, int y0, int int stride = cairo_image_surface_get_stride(imgs); for (int i=0; icolorProfile.c_str()); gchar const** names = 0; gchar const** tips = 0; guint const* scales = 0; - getThings( prof->getColorSpace(), names, tips, scales ); + getThings( asICColorSpaceSig(prof->getColorSpace()), names, tips, scales ); - guint count = _cmsChannelsOf( prof->getColorSpace() ); - if (count>4) count=4; //do we need it? Should we allow an arbitrary number of color values? Or should we limit to a maximum? (max==4?) + guint count = _cmsChannelsOf( asICColorSpaceSig(prof->getColorSpace()) ); + if (count > 4) { + count = 4; //do we need it? Should we allow an arbitrary number of color values? Or should we limit to a maximum? (max==4?) + } for (guint i=0;icolors[i])*256.0) * (gdouble)scales[i]); g_message("input[%d]: %d",i, color_in[i]); diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 94f450e50..9e5291cc4 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -16,6 +16,7 @@ #if ENABLE_LCMS #include "color-profile-fns.h" +#include "color-profile-cms-fns.h" #include "color-profile.h" #ifdef DEBUG_LCMS @@ -497,12 +498,12 @@ void ColorICCSelector::_switchToProfile( gchar const* name ) #ifdef DEBUG_LCMS g_message("got on out [%04x] [%04x] [%04x] [%04x]", post[0], post[1], post[2], post[3]); #endif // DEBUG_LCMS - guint count = _cmsChannelsOf( newProf->getColorSpace() ); + guint count = _cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); gchar const** names = 0; gchar const** tips = 0; guint const* scales = 0; - getThings( newProf->getColorSpace(), names, tips, scales ); + getThings( asICColorSpaceSig(newProf->getColorSpace()), names, tips, scales ); for ( guint i = 0; i < count; i++ ) { gdouble val = (((gdouble)post[i])/65535.0) * (gdouble)scales[i]; @@ -680,12 +681,12 @@ void ColorICCSelector::_setProfile( SVGICCColor* profile ) if ( profile ) { _prof = SP_ACTIVE_DOCUMENT->profileManager->find(profile->colorProfile.c_str()); - if ( _prof && _prof->getProfileClass() != icSigNamedColorClass ) { - _profChannelCount = _cmsChannelsOf( _prof->getColorSpace() ); + if ( _prof && (asICColorProfileClassSig(_prof->getProfileClass()) != icSigNamedColorClass) ) { + _profChannelCount = _cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); gchar const** names = 0; gchar const** tips = 0; - getThings( _prof->getColorSpace(), names, tips, _fooScales ); + getThings( asICColorSpaceSig(_prof->getColorSpace()), names, tips, _fooScales ); if ( profChanged ) { for ( guint i = 0; i < _profChannelCount; i++ ) { diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index d041f85df..546f7838b 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -1,5 +1,3 @@ -#define __SP_COLOR_NOTEBOOK_C__ - /* * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages * @@ -38,6 +36,11 @@ #include "../document.h" #include "../profile-manager.h" #include "color-profile.h" +#include "color-profile-fns.h" +#if ENABLE_LCMS +//#include "lcms.h" +//#include "color-profile-cms-fns.h" +#endif // ENABLE_LCMS struct SPColorNotebookTracker { const gchar* name; @@ -537,7 +540,7 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) gtk_widget_set_sensitive (_box_toomuchink, false); if (color.icc){ Inkscape::ColorProfile* prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( prof && ( (prof->getColorSpace() == icSigCmykData) || (prof->getColorSpace() == icSigCmyData) ) ) { + if ( prof && colorprofile_isPrintColorSpace(prof) ) { gtk_widget_show(GTK_WIDGET(_box_toomuchink)); double ink_sum = 0; for (unsigned int i=0; icolors.size(); i++){ -- cgit v1.2.3 From 351ad21da89e374b88b2214977f6e67ce4795ff0 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 15:26:35 +0100 Subject: Merge upstream GDL 0.7.8 changes (bzr r10430) --- src/libgdl/Makefile_insert | 2 +- src/libgdl/gdl-combo-button.c | 383 ++++++++++ src/libgdl/gdl-combo-button.h | 65 ++ src/libgdl/gdl-data-frame.c | 297 ++++++++ src/libgdl/gdl-data-frame.h | 72 ++ src/libgdl/gdl-data-model-test.c | 240 +++++++ src/libgdl/gdl-data-model-test.h | 32 + src/libgdl/gdl-data-model.c | 160 +++++ src/libgdl/gdl-data-model.h | 105 +++ src/libgdl/gdl-data-row.c | 604 ++++++++++++++++ src/libgdl/gdl-data-row.h | 90 +++ src/libgdl/gdl-data-view.c | 526 ++++++++++++++ src/libgdl/gdl-data-view.h | 71 ++ src/libgdl/gdl-dock-item-grip.c | 4 +- src/libgdl/gdl-dock-item.c | 47 +- src/libgdl/gdl-dock-layout.c | 1411 +++++++++++++++++++++++++++++++++++++ src/libgdl/gdl-dock-layout.h | 98 +++ src/libgdl/gdl-dock-object.c | 37 +- src/libgdl/gdl-dock-placeholder.c | 4 +- src/libgdl/gdl-icons.c | 267 +++++++ src/libgdl/gdl-icons.h | 61 ++ src/libgdl/gdl-switcher.c | 12 +- src/libgdl/gdl.h | 39 + src/libgdl/libgdl.h | 37 - src/libgdl/libgdltypebuiltins.h | 2 +- src/libgdl/test-combo-button.c | 111 +++ src/libgdl/test-dataview.c | 43 ++ src/libgdl/test-dock.c | 311 ++++++++ src/ui/dialog/dock-behavior.h | 2 +- src/ui/widget/dock-item.h | 2 +- src/ui/widget/dock.h | 2 +- 31 files changed, 5068 insertions(+), 69 deletions(-) create mode 100644 src/libgdl/gdl-combo-button.c create mode 100644 src/libgdl/gdl-combo-button.h create mode 100644 src/libgdl/gdl-data-frame.c create mode 100644 src/libgdl/gdl-data-frame.h create mode 100644 src/libgdl/gdl-data-model-test.c create mode 100644 src/libgdl/gdl-data-model-test.h create mode 100644 src/libgdl/gdl-data-model.c create mode 100644 src/libgdl/gdl-data-model.h create mode 100644 src/libgdl/gdl-data-row.c create mode 100644 src/libgdl/gdl-data-row.h create mode 100644 src/libgdl/gdl-data-view.c create mode 100644 src/libgdl/gdl-data-view.h create mode 100644 src/libgdl/gdl-dock-layout.c create mode 100644 src/libgdl/gdl-dock-layout.h create mode 100644 src/libgdl/gdl-icons.c create mode 100644 src/libgdl/gdl-icons.h create mode 100644 src/libgdl/gdl.h delete mode 100644 src/libgdl/libgdl.h create mode 100644 src/libgdl/test-combo-button.c create mode 100644 src/libgdl/test-dataview.c create mode 100644 src/libgdl/test-dock.c diff --git a/src/libgdl/Makefile_insert b/src/libgdl/Makefile_insert index 5869633ea..2276aa801 100644 --- a/src/libgdl/Makefile_insert +++ b/src/libgdl/Makefile_insert @@ -40,4 +40,4 @@ libgdl_libgdl_a_SOURCES = \ libgdl/libgdltypebuiltins.c \ libgdl/libgdlmarshal.h \ libgdl/libgdlmarshal.c \ - libgdl/libgdl.h + libgdl/gdl.h diff --git a/src/libgdl/gdl-combo-button.c b/src/libgdl/gdl-combo-button.c new file mode 100644 index 000000000..6414a8110 --- /dev/null +++ b/src/libgdl/gdl-combo-button.c @@ -0,0 +1,383 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * gdl-combo-button.c + * + * Copyright (C) 2003 Jeroen Zwartepoorte + * + * + * 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.1 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include "gdl-tools.h" +#include "gdl-combo-button.h" + +struct _GdlComboButtonPrivate { + GtkWidget *default_button; + GtkWidget *image; + GtkWidget *label; + GtkWidget *menu_button; + GtkWidget *menu; + gboolean menu_popped_up; +}; + +GDL_CLASS_BOILERPLATE (GdlComboButton, gdl_combo_button, GtkHBox, GTK_TYPE_HBOX); + +static void +default_button_clicked_cb (GtkButton *button, + gpointer user_data) +{ + GdlComboButton *combo; + GdlComboButtonPrivate *priv; + + combo = GDL_COMBO_BUTTON (user_data); + priv = combo->priv; + + if (!priv->menu_popped_up) + g_signal_emit_by_name (G_OBJECT (combo), + "activate-default", NULL); +} + +static gboolean +default_button_press_event_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + if (event->type == GDK_BUTTON_PRESS && event->button == 1) { + GTK_BUTTON (priv->menu_button)->button_down = TRUE; + gtk_button_pressed (GTK_BUTTON (priv->menu_button)); + } + + return FALSE; +} + +static gboolean +default_button_release_event_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + if (event->button == 1) { + gtk_button_released (GTK_BUTTON (priv->menu_button)); + } + + return FALSE; +} + +static gboolean +button_enter_notify_cb (GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + if (event->detail != GDK_NOTIFY_INFERIOR) { + GTK_BUTTON (priv->default_button)->in_button = TRUE; + GTK_BUTTON (priv->menu_button)->in_button = TRUE; + gtk_button_enter (GTK_BUTTON (priv->default_button)); + gtk_button_enter (GTK_BUTTON (priv->menu_button)); + } + + return TRUE; +} + +static gboolean +button_leave_notify_cb (GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + if (priv->menu_popped_up) + return TRUE; + + if (event->detail != GDK_NOTIFY_INFERIOR) { + GTK_BUTTON (priv->default_button)->in_button = FALSE; + GTK_BUTTON (priv->menu_button)->in_button = FALSE; + gtk_button_leave (GTK_BUTTON (priv->default_button)); + gtk_button_leave (GTK_BUTTON (priv->menu_button)); + } + + return TRUE; +} + +static void +menu_position_func (GtkMenu *menu, + gint *x_return, + gint *y_return, + gboolean *push_in, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + GtkAllocation *allocation; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + allocation = &(priv->default_button->allocation); + + gdk_window_get_origin (priv->default_button->window, x_return, y_return); + + *x_return += allocation->x; + *y_return += allocation->height; +} + +static gboolean +menu_button_press_event_cb (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + if (event->type == GDK_BUTTON_PRESS && + (event->button == 1 || event->button == 3)) { + GTK_BUTTON (priv->menu_button)->button_down = TRUE; + + gtk_button_pressed (GTK_BUTTON (priv->menu_button)); + + priv->menu_popped_up = TRUE; + gtk_menu_popup (GTK_MENU (priv->menu), NULL, NULL, + menu_position_func, combo_button, + event->button, event->time); + } + + return TRUE; +} + +static void +menu_deactivate_cb (GtkMenuShell *menu_shell, + gpointer user_data) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (user_data); + priv = combo_button->priv; + + priv->menu_popped_up = FALSE; + + GTK_BUTTON (priv->menu_button)->button_down = FALSE; + GTK_BUTTON (priv->menu_button)->in_button = FALSE; + GTK_BUTTON (priv->default_button)->in_button = FALSE; + gtk_button_leave (GTK_BUTTON (priv->menu_button)); + gtk_button_leave (GTK_BUTTON (priv->default_button)); + gtk_button_clicked (GTK_BUTTON (priv->menu_button)); +} + +static void +menu_detacher (GtkWidget *widget, + GtkMenu *menu) +{ + GdlComboButton *combo_button; + + combo_button = GDL_COMBO_BUTTON (widget); + + g_signal_handlers_disconnect_by_func (G_OBJECT (menu), + menu_deactivate_cb, + combo_button); + combo_button->priv->menu = NULL; +} + +static void +gdl_combo_button_destroy (GtkObject *object) +{ + GdlComboButton *combo_button; + GdlComboButtonPrivate *priv; + + combo_button = GDL_COMBO_BUTTON (object); + priv = combo_button->priv; + + if (priv) { + g_free (priv); + combo_button->priv = NULL; + } + + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + +static void +gdl_combo_button_class_init (GdlComboButtonClass *klass) +{ + GtkObjectClass *object_class; + GtkWidgetClass *widget_class; + + parent_class = g_type_class_peek_parent (klass); + object_class = GTK_OBJECT_CLASS (klass); + widget_class = GTK_WIDGET_CLASS (klass); + + object_class->destroy = gdl_combo_button_destroy; + + g_signal_new ("activate-default", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GdlComboButtonClass, activate_default), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +static void +gdl_combo_button_instance_init (GdlComboButton *combo_button) +{ + GdlComboButtonPrivate *priv; + GtkWidget *hbox, *align, *arrow; + + priv = g_new (GdlComboButtonPrivate, 1); + combo_button->priv = priv; + + priv->menu = NULL; + priv->menu_popped_up = FALSE; + + priv->default_button = gtk_button_new (); + gtk_button_set_relief (GTK_BUTTON (priv->default_button), GTK_RELIEF_NONE); + + /* Following code copied from gtk_button_construct_child. */ + priv->label = gtk_label_new (""); + gtk_label_set_use_underline (GTK_LABEL (priv->label), TRUE); + gtk_label_set_mnemonic_widget (GTK_LABEL (priv->label), + priv->default_button); + + priv->image = gtk_image_new (); + hbox = gtk_hbox_new (FALSE, 2); + + align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + + gtk_box_pack_start (GTK_BOX (hbox), priv->image, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (hbox), priv->label, FALSE, FALSE, 0); + + gtk_container_add (GTK_CONTAINER (priv->default_button), align); + gtk_container_add (GTK_CONTAINER (align), hbox); + /* End copied block. */ + + gtk_box_pack_start (GTK_BOX (combo_button), priv->default_button, + FALSE, FALSE, 0); + gtk_widget_show_all (priv->default_button); + + priv->menu_button = gtk_button_new (); + gtk_button_set_relief (GTK_BUTTON (priv->menu_button), GTK_RELIEF_NONE); + arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE); + gtk_container_add (GTK_CONTAINER (priv->menu_button), arrow); + gtk_box_pack_start (GTK_BOX (combo_button), priv->menu_button, FALSE, + FALSE, 0); + gtk_widget_show_all (priv->menu_button); + + /* Default button. */ + g_signal_connect (G_OBJECT (priv->default_button), "clicked", + G_CALLBACK (default_button_clicked_cb), combo_button); + g_signal_connect (G_OBJECT (priv->default_button), "button_press_event", + G_CALLBACK (default_button_press_event_cb), combo_button); + g_signal_connect (G_OBJECT (priv->default_button), "button_release_event", + G_CALLBACK (default_button_release_event_cb), combo_button); + g_signal_connect (G_OBJECT (priv->default_button), "enter_notify_event", + G_CALLBACK (button_enter_notify_cb), combo_button); + g_signal_connect (G_OBJECT (priv->default_button), "leave_notify_event", + G_CALLBACK (button_leave_notify_cb), combo_button); + + /* Menu button. */ + g_signal_connect (G_OBJECT (priv->menu_button), "button_press_event", + G_CALLBACK (menu_button_press_event_cb), combo_button); + g_signal_connect (G_OBJECT (priv->menu_button), "enter_notify_event", + G_CALLBACK (button_enter_notify_cb), combo_button); + g_signal_connect (G_OBJECT (priv->menu_button), "leave_notify_event", + G_CALLBACK (button_leave_notify_cb), combo_button); +} + +GtkWidget * +gdl_combo_button_new (void) +{ + GtkWidget *combo_button; + + combo_button = GTK_WIDGET (g_object_new (GDL_TYPE_COMBO_BUTTON, NULL)); + + return combo_button; +} + +void +gdl_combo_button_set_icon (GdlComboButton *combo_button, + GdkPixbuf *pixbuf) +{ + GdlComboButtonPrivate *priv; + + g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); + g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); + + priv = combo_button->priv; + + gtk_image_set_from_pixbuf (GTK_IMAGE (priv->image), pixbuf); +} + +void +gdl_combo_button_set_label (GdlComboButton *combo_button, + const gchar *label) +{ + GdlComboButtonPrivate *priv; + + g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); + g_return_if_fail (label != NULL); + + priv = combo_button->priv; + + gtk_label_set_text (GTK_LABEL (priv->label), label); +} + +void +gdl_combo_button_set_menu (GdlComboButton *combo_button, + GtkMenu *menu) +{ + GdlComboButtonPrivate *priv; + + g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); + g_return_if_fail (GTK_IS_MENU (menu)); + + priv = combo_button->priv; + + if (priv->menu != NULL) + gtk_menu_detach (GTK_MENU (priv->menu)); + + priv->menu = GTK_WIDGET (menu); + if (menu == NULL) + return; + + gtk_menu_attach_to_widget (menu, GTK_WIDGET (combo_button), menu_detacher); + + g_signal_connect (G_OBJECT (menu), "deactivate", + G_CALLBACK (menu_deactivate_cb), combo_button); +} diff --git a/src/libgdl/gdl-combo-button.h b/src/libgdl/gdl-combo-button.h new file mode 100644 index 000000000..6e80af0b6 --- /dev/null +++ b/src/libgdl/gdl-combo-button.h @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * gdl-combo-button.h + * + * Copyright (C) 2003 Jeroen Zwartepoorte + * + * 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.1 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _GDL_COMBO_BUTTON_H_ +#define _GDL_COMBO_BUTTON_H_ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_COMBO_BUTTON (gdl_combo_button_get_type ()) +#define GDL_COMBO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_COMBO_BUTTON, GdlComboButton)) +#define GDL_COMBO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_COMBO_BUTTON, GdlComboButtonClass)) +#define GDL_IS_COMBO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_COMBO_BUTTON)) +#define GDL_IS_COMBO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_COMBO_BUTTON)) + +typedef struct _GdlComboButton GdlComboButton; +typedef struct _GdlComboButtonPrivate GdlComboButtonPrivate; +typedef struct _GdlComboButtonClass GdlComboButtonClass; + +struct _GdlComboButton { + GtkHBox parent; + + GdlComboButtonPrivate *priv; +}; + +struct _GdlComboButtonClass { + GtkHBoxClass parent_class; + + /* Signals. */ + void (* activate_default) (GdlComboButton *combo_button); +}; + +GType gdl_combo_button_get_type (void); +GtkWidget *gdl_combo_button_new (void); + +void gdl_combo_button_set_icon (GdlComboButton *combo_button, + GdkPixbuf *pixbuf); +void gdl_combo_button_set_label (GdlComboButton *combo_button, + const gchar *label); +void gdl_combo_button_set_menu (GdlComboButton *combo_button, + GtkMenu *menu); + +G_END_DECLS + +#endif /* _GDL_COMBO_BUTTON_H_ */ diff --git a/src/libgdl/gdl-data-frame.c b/src/libgdl/gdl-data-frame.c new file mode 100644 index 000000000..d6fb19533 --- /dev/null +++ b/src/libgdl/gdl-data-frame.c @@ -0,0 +1,297 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" +#include "gdl-tools.h" +#include + +#include "gdl-data-view.h" +#include "gdl-data-frame.h" +#include "gdl-data-model.h" +#include "gdl-data-row.h" + +struct _GdlDataFramePrivate { + GdkRectangle shadow_r; + GdkRectangle frame_r; + GdkRectangle titlebar_r; + GdkRectangle title_r; + GdkRectangle close_r; + GdkRectangle row_r; + + int shadow_offset; + int titlebar_height; + char *title; + + GdlDataRow *row; + + PangoLayout *layout; + + gboolean selected; +}; + +static void gdl_data_frame_class_init (GdlDataFrameClass *klass); +static void gdl_data_frame_instance_init (GdlDataFrame *obj); +static void gdl_data_frame_finalize (GObject *object); + +GDL_CLASS_BOILERPLATE (GdlDataFrame, gdl_data_frame, GObject, G_TYPE_OBJECT); + +#define PAD 2 +#define BORDER 1 + +#define CENTERY(r1, r2) { r1.y = ((r2.y + (r2.height / 2)) - (r1.height / 2)); } + +void +gdl_data_frame_layout (GdlDataFrame *frame) +{ + GdkPixbuf *close_pixbuf; + /* Sizes */ + if (frame->priv->row) { + gdl_data_row_get_size (frame->priv->row, + NULL, NULL, + &frame->priv->row_r.width, + &frame->priv->row_r.height); + } else { + frame->priv->row_r.height = frame->priv->row_r.width = 0; + } + + if (frame->priv->layout) { + pango_layout_get_pixel_size (frame->priv->layout, + &frame->priv->title_r.width, + &frame->priv->title_r.height); + } else { + frame->priv->title_r.width = frame->priv->title_r.height = 0; + } + + close_pixbuf = gdl_data_view_get_close_pixbuf (frame->view); + if (close_pixbuf) { + frame->priv->close_r.width = + gdk_pixbuf_get_width (close_pixbuf); + frame->priv->close_r.height = + gdk_pixbuf_get_width (close_pixbuf); + } else { + frame->priv->close_r.width = frame->priv->close_r.height = 0; + } + + frame->priv->titlebar_r.height = MAX (frame->priv->titlebar_height, + frame->priv->title_r.height); + frame->priv->titlebar_r.height = MAX (frame->priv->titlebar_r.height, + frame->priv->close_r.height); + + frame->priv->frame_r.width = 2 * BORDER + 3 * PAD + frame->priv->title_r.width + frame->priv->close_r.width; + frame->priv->frame_r.width = MAX (frame->priv->frame_r.width, + frame->priv->row_r.width + 2 * BORDER + 2 * PAD); + frame->priv->frame_r.height = frame->priv->row_r.height + frame->priv->titlebar_r.height + 2 * PAD + 2 * BORDER; + frame->priv->titlebar_r.width = frame->priv->frame_r.width - BORDER; + frame->priv->shadow_r.width = frame->priv->frame_r.width; + frame->priv->shadow_r.height = frame->priv->frame_r.height; + + /* Locations */ + frame->priv->frame_r.x = frame->area.x; + frame->priv->frame_r.y = frame->area.y; + + frame->priv->shadow_r.x = frame->priv->frame_r.x + frame->priv->shadow_offset; + frame->priv->shadow_r.y = frame->priv->frame_r.y + frame->priv->shadow_offset; + frame->priv->titlebar_r.x = frame->priv->frame_r.x + BORDER; + frame->priv->titlebar_r.y = frame->priv->frame_r.y + BORDER; + frame->priv->title_r.x = frame->priv->frame_r.x + BORDER + PAD; + CENTERY (frame->priv->title_r, frame->priv->titlebar_r); + frame->priv->close_r.x = (frame->priv->frame_r.x + frame->priv->frame_r.width) - (frame->priv->close_r.width + BORDER + PAD); + CENTERY (frame->priv->close_r, frame->priv->titlebar_r); + + if (frame->priv->row) { + frame->priv->row_r.x = frame->priv->frame_r.x + BORDER + PAD; + frame->priv->row_r.y = frame->priv->titlebar_r.y + frame->priv->titlebar_r.height + PAD; + gdl_data_row_layout (frame->priv->row, &frame->priv->row_r); + } else { + frame->priv->row_r.x = frame->priv->row_r.y = 0; + } + + frame->area.width = frame->priv->frame_r.width + frame->priv->shadow_offset; + frame->area.height = frame->priv->frame_r.height + frame->priv->shadow_offset; +} + +#if 0 /* not used */ +static void +change_layout (GdlDataFrame *frame) +{ + char *text = frame->priv->title ? frame->priv->title : "?"; + pango_layout_set_text (frame->priv->layout, text, strlen (text)); +} +#endif + +#define EXPLODE(r) (r).x, (r).y, (r).width, (r).height + +void +gdl_data_frame_draw (GdlDataFrame *frame, GdkDrawable *drawable, + GdkRectangle *expose_area) +{ + GdkRectangle inter; + guint8 state = + frame->priv->selected ? GTK_STATE_SELECTED : GTK_STATE_NORMAL; + + gdk_draw_rectangle (drawable, + GTK_WIDGET (frame->view)->style->dark_gc[state], + TRUE, + EXPLODE (frame->priv->shadow_r)); + gdk_draw_rectangle (drawable, + GTK_WIDGET (frame->view)->style->base_gc[GTK_STATE_NORMAL], + TRUE, + EXPLODE (frame->priv->frame_r)); + gdk_draw_rectangle (drawable, + GTK_WIDGET (frame->view)->style->black_gc, + FALSE, + EXPLODE (frame->priv->frame_r)); + gdk_draw_rectangle (drawable, + GTK_WIDGET (frame->view)->style->bg_gc[state], + TRUE, + EXPLODE (frame->priv->titlebar_r)); + gdk_draw_layout (drawable, + GTK_WIDGET (frame->view)->style->fg_gc[state], + frame->priv->title_r.x, frame->priv->title_r.y, + frame->priv->layout); + + if (gdk_rectangle_intersect (expose_area, &frame->priv->close_r, &inter)) { + GdkPixbuf *pixbuf = gdl_data_view_get_close_pixbuf (frame->view); + gdk_draw_pixbuf (drawable, NULL, pixbuf, + 0, 0, + inter.x - frame->priv->close_r.x, + inter.y - frame->priv->close_r.y, + gdk_pixbuf_get_width (pixbuf), + gdk_pixbuf_get_height (pixbuf), + GDK_RGB_DITHER_NORMAL, 0, 0); + } + + if (frame->priv->row) { + if (gdk_rectangle_intersect (expose_area, &frame->priv->row_r, + &inter)) { + gdl_data_row_render (frame->priv->row, drawable, + &inter, + frame->priv->selected ? GTK_CELL_RENDERER_SELECTED : 0); + } + } +} + +void +gdl_data_frame_class_init (GdlDataFrameClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass *)klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = gdl_data_frame_finalize; +} + +void +gdl_data_frame_instance_init (GdlDataFrame *frame) +{ + frame->priv = g_new0 (GdlDataFramePrivate, 1); + frame->area.x = frame->area.y = 0; + frame->priv->shadow_offset = 3; + frame->priv->titlebar_height = 20; + + frame->area.height = frame->area.width = 100; +} + +void +gdl_data_frame_finalize (GObject *object) +{ + GdlDataFrame *frame = GDL_DATA_FRAME (object); + + if (frame->priv) { + g_free (frame->priv->title); + g_object_unref (frame->priv->layout); + g_object_unref (frame->priv->row); + + g_free (frame->priv); + frame->priv = NULL; + } + GDL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); +} + +void +gdl_data_frame_set_selected (GdlDataFrame *frame, + gboolean val) +{ + frame->priv->selected = val; + + gdk_window_invalidate_rect (GTK_LAYOUT (frame->view)->bin_window, + &frame->priv->frame_r, + TRUE); +} + +gboolean +gdl_data_frame_button_press (GdlDataFrame *frame, + GdkEventButton *event) +{ + return FALSE; +} + +void +gdl_data_frame_set_position (GdlDataFrame *frame, + int x, + int y) +{ + frame->area.x = x; + frame->area.y = y; + + gdl_data_frame_layout (frame); +} + +static void +setup_layout (GdlDataFrame *frame) +{ + PangoFontDescription *font_desc = + pango_font_description_copy (GTK_WIDGET (frame->view)->style->font_desc); + + pango_font_description_set_weight (font_desc, + PANGO_WEIGHT_BOLD); + + frame->priv->layout = gtk_widget_create_pango_layout (GTK_WIDGET (frame->view), + frame->priv->title ? frame->priv->title : "?"); + pango_layout_set_font_description (frame->priv->layout, + font_desc); + pango_font_description_free (font_desc); +} + + +GdlDataFrame * +gdl_data_frame_new (GdlDataView *view, + GdlDataRow *row) +{ + GdlDataFrame *frame; + frame = GDL_DATA_FRAME (g_object_new (GDL_TYPE_DATA_FRAME, NULL)); + + frame->view = view; + + frame->priv->row = row; + frame->priv->title = g_strdup (gdl_data_row_get_title (row)); + + setup_layout (frame); + + gdl_data_frame_layout (frame); + + return frame; +} diff --git a/src/libgdl/gdl-data-frame.h b/src/libgdl/gdl-data-frame.h new file mode 100644 index 000000000..740c38293 --- /dev/null +++ b/src/libgdl/gdl-data-frame.h @@ -0,0 +1,72 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifndef GDL_DATA_FRAME_H +#define GDL_DATA_FRAME_H + +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_DATA_FRAME (gdl_data_frame_get_type ()) +#define GDL_DATA_FRAME(obj) (GTK_CHECK_CAST ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrame)) +#define GDL_DATA_FRAME_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_DATA_VIEW_FRAM, GdlDataFrame)) +#define GDL_IS_DATA_FRAME(obj) (GTK_CHECK_TYPE ((obj), GDL_TYPE_DATA_FRAME)) +#define GDL_IS_DATA_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_FRAME)) +#define GDL_DATA_FRAME_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrameClass)) + +typedef struct _GdlDataFrame GdlDataFrame; +typedef struct _GdlDataFramePrivate GdlDataFramePrivate; +typedef struct _GdlDataFrameClass GdlDataFrameClass; + +struct _GdlDataFrame { + GObject parent; + + GdlDataView *view; + GdkRectangle area; + + GdlDataFramePrivate *priv; +}; + +struct _GdlDataFrameClass { + GObjectClass parent_class; +}; + +GType gdl_data_frame_get_type (void); +GdlDataFrame *gdl_data_frame_new (GdlDataView *view, + GdlDataRow *row); +void gdl_data_frame_layout (GdlDataFrame *frame); +void gdl_data_frame_draw (GdlDataFrame *item, + GdkDrawable *drawable, + GdkRectangle *expose_area); +void gdl_data_frame_set_selected (GdlDataFrame *frame, + gboolean val); +gboolean gdl_data_frame_button_press (GdlDataFrame *frame, + GdkEventButton *event); +void gdl_data_frame_set_position (GdlDataFrame *frame, + int x, + int y); + +G_END_DECLS + +#endif diff --git a/src/libgdl/gdl-data-model-test.c b/src/libgdl/gdl-data-model-test.c new file mode 100644 index 000000000..ec6ed4d50 --- /dev/null +++ b/src/libgdl/gdl-data-model-test.c @@ -0,0 +1,240 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" + +#include "gdl-data-model-test.h" +#include "gdl-data-model.h" + +#include +#include +#include + +GObjectClass *parent_class; + +typedef struct _DataItem { + char *name; + char *value; + char *path; + struct _DataItem *children; +} DataItem; + +DataItem data1[] = { + { "foo1", "foo1", "0:0", NULL}, + { "bar1", "bar1", "0:1", NULL }, + { "baz1", "baz1", "0:2", NULL }, + { NULL, NULL, NULL, NULL } + +}; +DataItem data2[] = { + { "foo2", "foo2", "1:0", NULL }, + { "bar2", "bar2", "1:1", NULL }, + { "baz2", "baz2", "1:2", NULL }, + { NULL, NULL, NULL, NULL } + +}; + +DataItem data5[] = { + { "1", "1", "2:2:1:0", NULL }, + { "2", "2", "2:2:1:1", NULL }, + { "3", "3", "2:2:1:2", NULL }, + { "4", "4", "2:2:1:3", NULL }, + { "5", "5", "2:2:1:4", NULL }, + { "6", "6", "2:2:1:5", NULL }, + { NULL, NULL, NULL, NULL } + +}; +DataItem data4[] = { + { "foo4", "foo4", "2:2:0", NULL }, + { "bar4", "[...]", "2:2:1", data5 }, + { "baz4", "baz4", "2:2:2", NULL }, + { NULL, NULL, NULL, NULL } + +}; +DataItem data3[] = { + { "foo foo", "foo3", "2:0", NULL }, + { "bar3", "1", "2:1", NULL }, + { "baz3", "{...}", "2:2", data4 }, + { NULL, NULL, NULL, NULL } + +}; + +DataItem root[] = { + { "test-data", "value1", "0", NULL } , + { "test-data2", "value2", "1", NULL } , + { "test-data3", "{...}", "2", data3 } , + { NULL, NULL, NULL } +}; + +static gboolean +get_iter (GdlDataModel *dm, GdlDataIter *iter, GtkTreePath *path) +{ + int *i = gtk_tree_path_get_indices (path); + int n = gtk_tree_path_get_depth (path); + DataItem *item; + + g_assert (i); + item = &root[*i++]; + + while (--n) { + item = &item->children[*i++]; + } + + iter->data1 = item; + + return TRUE; +} + +static GtkTreePath * +get_path (GdlDataModel *dm, GdlDataIter *iter) +{ + DataItem *item = iter->data1; + return gtk_tree_path_new_from_string (item->path); +} + +static void +get_name (GdlDataModel *dm, GdlDataIter *iter, char **name) +{ + DataItem *item = iter->data1; + *name = item->name; +} + +static void +get_value (GdlDataModel *dm, GdlDataIter *iter, GValue *value) +{ + DataItem *item = iter->data1; + if (strcmp (item->name, "bar3")) { + g_value_init (value, G_TYPE_STRING); + g_value_set_string (value, item->value); + } else { + g_value_init (value, G_TYPE_BOOLEAN); + g_value_set_boolean (value, !strcmp (item->value, "1")); + } +} + +static void +get_renderer (GdlDataModel *dm, GdlDataIter *iter, + GtkCellRenderer **renderer, char **field, + gboolean *is_editable) +{ + DataItem *item = iter->data1; + if (!strcmp (item->name, "bar3")) { + *renderer = g_object_new (gtk_cell_renderer_toggle_get_type (), + "activatable", TRUE, NULL); + *field = "active"; + } else { + *renderer = g_object_new (gtk_cell_renderer_text_get_type (), + "editable", TRUE, NULL); + *field = "text"; + } + *is_editable = (item->children == NULL); +} + +static gboolean +iter_next (GdlDataModel *dm, GdlDataIter *iter) +{ + DataItem *item = iter->data1; + item++; + if (item->name) { + iter->data1 = item; + return TRUE; + } else { + return FALSE; + } +} + +static gboolean +iter_children (GdlDataModel *dm, GdlDataIter *iter, GdlDataIter *parent) +{ + DataItem *item = parent->data1; + + item = &item->children[0]; + if (item) { + iter->data1 = item; + return TRUE; + } else { + return FALSE; + } +} + +static gboolean +iter_has_child (GdlDataModel *dm, GdlDataIter *iter) +{ + DataItem *item = iter->data1; + if (item->children) { + return TRUE; + } else { + return FALSE; + } +} + + +static void +gdl_data_model_test_instance_init (GdlDataModelTest *model) +{ +} + +static void +gdl_data_model_test_finalize (GObject *object) +{ + (*parent_class->finalize) (object); +} + +static void +gdl_data_model_test_class_init (GdlDataModelTestClass *klass) +{ + GObjectClass *object_class; + parent_class = g_type_class_peek_parent (klass); + object_class = (GObjectClass *)klass; + object_class->finalize = gdl_data_model_test_finalize; +} + +static void +gdl_data_model_test_data_model_init (GdlDataModelIface *iface) +{ + iface->get_iter = get_iter; + iface->get_path = get_path; + iface->get_name = get_name; + iface->get_value = get_value; + iface->get_renderer = get_renderer; + iface->iter_next = iter_next; + iface->iter_children = iter_children; + iface->iter_has_child = iter_has_child; +} + +GType +gdl_data_model_test_get_type (void) +{ + static GType type = 0; + + if (!type) { + static const GTypeInfo data_model_test_info = { + sizeof (GdlDataModelTestClass), + NULL, NULL, + (GClassInitFunc) gdl_data_model_test_class_init, + NULL, NULL, + sizeof (GdlDataModelTest), 0, + (GInstanceInitFunc) gdl_data_model_test_instance_init + }; + + static const GInterfaceInfo data_model_info = { + (GInterfaceInitFunc) gdl_data_model_test_data_model_init, + NULL, NULL + }; + + type = g_type_register_static (G_TYPE_OBJECT, + "GdlDataModelTest", + &data_model_test_info, 0); + g_type_add_interface_static (type, + GDL_TYPE_DATA_MODEL, + &data_model_info); + } + return type; +} + +GdlDataModelTest * +gdl_data_model_test_new (void) +{ + return GDL_DATA_MODEL_TEST (g_object_new (gdl_data_model_test_get_type (), NULL)); +} diff --git a/src/libgdl/gdl-data-model-test.h b/src/libgdl/gdl-data-model-test.h new file mode 100644 index 000000000..c8add8daf --- /dev/null +++ b/src/libgdl/gdl-data-model-test.h @@ -0,0 +1,32 @@ +#ifndef GDL_DATA_MODEL_TEST_H +#define GDL_DATA_MODEL_TEST_H + +#include +#include "gdl-data-model.h" + +G_BEGIN_DECLS + +#define GDL_TYPE_DATA_MODEL_TEST (gdl_data_model_test_get_type ()) +#define GDL_DATA_MODEL_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_MODEL_TEST, GdlDataModelTest)) +#define GDL_IS_DATA_MODEL_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_MODEL_TEST)) + + +typedef struct _GdlDataModelTest GdlDataModelTest; +typedef struct _GdlDataModelTestClass GdlDataModelTestClass; + +struct _GdlDataModelTest { + GObject parent; + + int stamp; +}; + +struct _GdlDataModelTestClass { + GObjectClass parent_class; +}; + +GType gdl_data_model_test_get_type (void); +GdlDataModelTest *gdl_data_model_test_new (void); + +G_END_DECLS + +#endif diff --git a/src/libgdl/gdl-data-model.c b/src/libgdl/gdl-data-model.c new file mode 100644 index 000000000..69fbb93d5 --- /dev/null +++ b/src/libgdl/gdl-data-model.c @@ -0,0 +1,160 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-data-model.h" + +gboolean +gdl_data_model_get_iter (GdlDataModel *dm, + GdlDataIter *iter, + GtkTreePath *path) +{ + g_return_val_if_fail (dm != NULL, FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (path != NULL, FALSE); + g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_iter != NULL, + FALSE); + + return (*GDL_DATA_MODEL_GET_IFACE (dm)->get_iter) (dm, iter, path); +} + +GtkTreePath * +gdl_data_model_get_path (GdlDataModel *dm, + GdlDataIter *iter) +{ + g_return_val_if_fail (dm != NULL, NULL); + g_return_val_if_fail (iter != NULL, NULL); + g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_path != NULL, + NULL); + + return (*GDL_DATA_MODEL_GET_IFACE (dm)->get_path) (dm, iter); +} + +void +gdl_data_model_get_name (GdlDataModel *dm, + GdlDataIter *iter, + char **name) +{ + g_return_if_fail (dm != NULL); + g_return_if_fail (iter != NULL); + g_return_if_fail (name != NULL); + g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_name != NULL); + + (*GDL_DATA_MODEL_GET_IFACE (dm)->get_name) (dm, iter, name); +} + +void +gdl_data_model_get_value (GdlDataModel *dm, + GdlDataIter *iter, + GValue *value) +{ + g_return_if_fail (dm != NULL); + g_return_if_fail (iter != NULL); + g_return_if_fail (value != NULL); + g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_value != NULL); + + (*GDL_DATA_MODEL_GET_IFACE (dm)->get_value) (dm, iter, value); +} + +void +gdl_data_model_get_renderer (GdlDataModel *dm, + GdlDataIter *iter, + GtkCellRenderer **renderer, + char **field, + gboolean *is_editable) +{ + g_return_if_fail (dm != NULL); + g_return_if_fail (iter != NULL); + g_return_if_fail (renderer != NULL); + g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_renderer != NULL); + + (*GDL_DATA_MODEL_GET_IFACE (dm)->get_renderer) (dm, iter, + renderer, field, + is_editable); +} + +gboolean +gdl_data_model_iter_next (GdlDataModel *dm, + GdlDataIter *iter) +{ + g_return_val_if_fail (dm != NULL, FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_next != NULL, FALSE); + + return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_next) (dm, iter); +} + +gboolean +gdl_data_model_iter_children (GdlDataModel *dm, + GdlDataIter *iter, + GdlDataIter *parent) +{ + g_return_val_if_fail (dm != NULL, FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_children != NULL, FALSE); + + return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_children) (dm, iter, parent); +} + +gboolean +gdl_data_model_iter_has_child (GdlDataModel *dm, + GdlDataIter *iter) +{ + g_return_val_if_fail (dm != NULL, FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_has_child != NULL, FALSE); + + return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_has_child) (dm, iter); +} + +static void +gdl_data_model_base_init (gpointer g_class) +{ + static gboolean initialized = FALSE; + + if (!initialized) { + } +} + +GType +gdl_data_model_get_type (void) +{ + static GType type = 0; + + if (!type) { + static const GTypeInfo info = { + sizeof (GdlDataModelIface), + gdl_data_model_base_init, + NULL, NULL, NULL, NULL, 0, 0, NULL + }; + + type = g_type_register_static (G_TYPE_INTERFACE, + "GdlDataModel", + &info, 0); + g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); + } + + return type; +} diff --git a/src/libgdl/gdl-data-model.h b/src/libgdl/gdl-data-model.h new file mode 100644 index 000000000..521a65d0c --- /dev/null +++ b/src/libgdl/gdl-data-model.h @@ -0,0 +1,105 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifndef GDL_DATA_MODEL_H +#define GDL_DATA_MODEL_H + +#include +#include + +/* Using GtkTreePath to save time */ +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_DATA_MODEL (gdl_data_model_get_type ()) +#define GDL_DATA_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_MODEL, GdlDataModel)) +#define GDL_IS_DATA_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_MODEL)) +#define GDL_DATA_MODEL_GET_IFACE(obj) ((GdlDataModelIface *)g_type_interface_peek (((GTypeInstance *)GDL_DATA_MODEL (obj))->g_class, GDL_TYPE_DATA_MODEL)) + +typedef struct _GdlDataModel GdlDataModel; +typedef struct _GdlDataIter GdlDataIter; +typedef struct _GdlDataModelIface GdlDataModelIface; + +struct _GdlDataIter { + int stamp; + + gpointer data1; + gpointer data2; + gpointer data3; +}; + +struct _GdlDataModelIface { + GTypeInterface g_iface; + + /* Signals */ + void (*path_changed) (GdlDataModel *dm, GtkTreePath *path); + void (*path_inserted) (GdlDataModel *dm, GtkTreePath *path); + void (*path_deleted) (GdlDataModel *dm, GtkTreePath *path); + + /* Virtual Table */ + gboolean (*get_iter) (GdlDataModel *dm, GdlDataIter *iter, + GtkTreePath *path); + GtkTreePath* (*get_path) (GdlDataModel *dm, GdlDataIter *iter); + + void (*get_name) (GdlDataModel *dm, GdlDataIter *iter, + char **name); + void (*get_value) (GdlDataModel *dm, GdlDataIter *iter, + GValue *value); + void (*get_renderer) (GdlDataModel *dm, GdlDataIter *iter, + GtkCellRenderer **renderer, char **field, + gboolean *is_editable); + gboolean (*iter_next) (GdlDataModel *dm, GdlDataIter *iter); + gboolean (*iter_children) (GdlDataModel *dm, GdlDataIter *iter, + GdlDataIter *parent); + gboolean (*iter_has_child) (GdlDataModel *dm, GdlDataIter *iter); +}; + +GType gdl_data_model_get_type (void); +gboolean gdl_data_model_get_iter (GdlDataModel *dm, + GdlDataIter *iter, + GtkTreePath *path); +GtkTreePath *gdl_data_model_get_path (GdlDataModel *dm, + GdlDataIter *iter); +void gdl_data_model_get_name (GdlDataModel *dm, + GdlDataIter *iter, + char **name); +void gdl_data_model_get_value (GdlDataModel *dm, + GdlDataIter *iter, + GValue *value); +void gdl_data_model_get_renderer (GdlDataModel *dm, + GdlDataIter *iter, + GtkCellRenderer **renderer, + char **field, + gboolean *is_editable); +gboolean gdl_data_model_iter_next (GdlDataModel *dm, + GdlDataIter *iter); +gboolean gdl_data_model_iter_children (GdlDataModel *dm, + GdlDataIter *iter, + GdlDataIter *children); +gboolean gdl_data_model_iter_has_child (GdlDataModel *dm, + GdlDataIter *iter); + +G_END_DECLS + +#endif diff --git a/src/libgdl/gdl-data-row.c b/src/libgdl/gdl-data-row.c new file mode 100644 index 000000000..666c658fe --- /dev/null +++ b/src/libgdl/gdl-data-row.c @@ -0,0 +1,604 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" +#include "gdl-tools.h" +#include "gdl-data-row.h" +#include "gdl-data-model.h" + +#include +#include + +struct _GdlDataRowPrivate { + GdlDataModel *model; + GtkTreePath *path; + GdlDataView *view; + + char *name; + + /* area_r + * +- title_r + * | +- name_r + * | +- sep_r + * +- data_r + * +- expand_r + * +- cell_r + */ + + GdkRectangle area_r; + + GdkRectangle title_r; + GdkRectangle name_r; + GdkRectangle sep_r; + + GdkRectangle data_r; + GdkRectangle expand_r; + GdkRectangle cell_r; + + gboolean multi; + GtkCellRenderer *cell; + GList *subrows; + + char *renderer_field; + + gboolean expanded; + gboolean focused; + gboolean editable; + + int split; + int child_split; + gboolean selected; +}; + +GDL_CLASS_BOILERPLATE (GdlDataRow, gdl_data_row, GObject, G_TYPE_OBJECT); + + +static void +expand (GdlDataRow *row) +{ + GdlDataIter iter; + gboolean valid; + + if (gdl_data_model_get_iter (row->priv->model, &iter, row->priv->path)) { + valid = gdl_data_model_iter_children (row->priv->model, + &iter, &iter); + while (valid) { + GdlDataRow *new_row; + GtkTreePath *path; + + path = gdl_data_model_get_path (row->priv->model, + &iter); + new_row = gdl_data_row_new (row->priv->view, + path); + row->priv->subrows = + g_list_prepend (row->priv->subrows, new_row); + gtk_tree_path_free (path); + + valid = gdl_data_model_iter_next (row->priv->model, + &iter); + } + row->priv->subrows = g_list_reverse (row->priv->subrows); + + row->priv->expanded = TRUE; + gdl_data_view_layout (GDL_DATA_VIEW (row->priv->view)); + gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); + } +} + +static void +contract (GdlDataRow *row) +{ + GList *l; + for (l = row->priv->subrows; l != NULL; l = l->next) { + g_object_unref (G_OBJECT (l->data)); + } + g_list_free (row->priv->subrows); + row->priv->subrows = NULL; + + row->priv->expanded = FALSE; + gdl_data_view_layout (GDL_DATA_VIEW (row->priv->view)); + gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); +} + +static void +load_path (GdlDataRow *row) +{ + GdlDataIter iter; + + /* Make sure the path has been unloaded */ + g_return_if_fail (row->priv->name == NULL); + g_return_if_fail (row->priv->cell == NULL); + + if (gdl_data_model_get_iter (row->priv->model, + &iter, row->priv->path)) { + GValue val = { 0, }; + char *str; + + gdl_data_model_get_name (row->priv->model, &iter, + &str); + row->priv->name = g_strdup (str); + + if (gdl_data_model_iter_has_child (row->priv->model, &iter)) { + row->priv->multi = TRUE; + } + + gdl_data_model_get_renderer (row->priv->model, &iter, + &row->priv->cell, + &str, + &row->priv->editable); + g_object_ref (GTK_OBJECT (row->priv->cell)); + gtk_object_sink (GTK_OBJECT (row->priv->cell)); + + row->priv->renderer_field = g_strdup (str); + gdl_data_model_get_value (row->priv->model, &iter, &val); + + g_object_set_property (G_OBJECT (row->priv->cell), + row->priv->renderer_field, + &val); + g_value_unset (&val); + } +} + +static void +unload_path (GdlDataRow *row) +{ + if (row->priv->renderer_field) { + g_free (row->priv->renderer_field); + row->priv->renderer_field = NULL; + } + + if (row->priv->name) { + g_free (row->priv->name); + row->priv->name = NULL; + } + + if (row->priv->cell) { + g_object_unref (row->priv->cell); + row->priv->cell = NULL; + } + + if (row->priv->subrows) { + GList *l; + for (l = row->priv->subrows; l != NULL; l = l->next) { + g_object_unref (G_OBJECT (l->data)); + } + g_list_free (row->priv->subrows); + row->priv->subrows = NULL; + } +} + +static void +gdl_data_row_instance_init (GdlDataRow *row) +{ + row->priv = g_new0 (GdlDataRowPrivate, 1); +} + +static void +gdl_data_row_finalize (GObject *object) +{ + GdlDataRow *row = GDL_DATA_ROW (object); + if (row->priv) { + unload_path (row); + + if (row->priv->path) { + gtk_tree_path_free (row->priv->path); + row->priv->path = NULL; + } + + + g_object_unref (row->priv->model); + + g_free (row->priv); + row->priv = NULL; + } +} + +static void +gdl_data_row_class_init (GdlDataRowClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass*) klass; + gobject_class->finalize = gdl_data_row_finalize; + + parent_class = g_type_class_peek_parent (klass); +} + +GdlDataRow * +gdl_data_row_new (GdlDataView *view, + GtkTreePath *path) +{ + GdlDataRow *row; + + row = GDL_DATA_ROW (g_object_new (gdl_data_row_get_type (), + NULL)); + + row->priv->view = view; + row->priv->model = g_object_ref (view->model); + row->priv->path = gtk_tree_path_copy (path); + load_path (row); + + return row; +} + + +#define PAD 3 + +static void +layout_row (GdlDataRow *row, + int x, int y, int width, int height) +{ + PangoLayout *layout; + + /* sizes */ + + layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), + row->priv->name); + pango_layout_get_pixel_size (layout, + &row->priv->name_r.width, + &row->priv->name_r.height); + g_object_unref (layout); + + layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), "="); + pango_layout_get_pixel_size (layout, + &row->priv->sep_r.width, + &row->priv->sep_r.height); + g_object_unref (layout); + + row->priv->title_r.width = + MAX (row->priv->name_r.width + row->priv->sep_r.width + PAD, + row->priv->split); + row->priv->title_r.height = + MAX (row->priv->name_r.height, row->priv->sep_r.width); + + if (row->priv->cell) { + gtk_cell_renderer_get_size (row->priv->cell, + GTK_WIDGET (row->priv->view), + NULL, NULL, NULL, + &row->priv->cell_r.width, + &row->priv->cell_r.height); + } else { + row->priv->cell_r.width = row->priv->cell_r.height = 0; + } + + row->priv->data_r.width = row->priv->cell_r.width; + row->priv->data_r.height = row->priv->cell_r.height; + + if (row->priv->multi) { + row->priv->expand_r.width = 10; + row->priv->expand_r.height = 10; + + row->priv->data_r.width += row->priv->expand_r.width; + row->priv->data_r.height = MAX (row->priv->expand_r.height, + row->priv->data_r.height); + + if (row->priv->expanded) { + GList *l; + int name_w = 0, data_w = 0; + for (l = row->priv->subrows; l != NULL; l = l->next) { + int w1, w2, h; + gdl_data_row_get_size (GDL_DATA_ROW (l->data), + &w1, &w2, NULL, &h); + name_w = MAX (name_w, w1); + data_w = MAX (data_w, w2); + row->priv->data_r.height += h; + } + row->priv->child_split = name_w; + row->priv->data_r.width = + MAX (name_w + data_w + 3 * PAD, + row->priv->data_r.width); + row->priv->data_r.height += 2 * PAD; + } + } + + row->priv->area_r.width = MAX (width, + row->priv->data_r.width + row->priv->title_r.width + PAD); + + row->priv->area_r.height = MAX (height, + (MAX (row->priv->data_r.height, + row->priv->title_r.height))); + + /* Positions */ + + row->priv->area_r.x = x; + row->priv->area_r.y = y; + + row->priv->title_r.x = x; + row->priv->title_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->title_r.height / 2); + + row->priv->name_r.x = x; + row->priv->name_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->name_r.height / 2); + + row->priv->sep_r.x = row->priv->title_r.x + row->priv->title_r.width - row->priv->sep_r.width; + row->priv->sep_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->sep_r.height / 2); + + row->priv->data_r.x = row->priv->title_r.x + row->priv->title_r.width + PAD; + row->priv->data_r.y = y; + + /* Readjust the data area size to fit */ + row->priv->data_r.width = row->priv->area_r.width - (row->priv->title_r.width + PAD); + row->priv->data_r.height = row->priv->area_r.height; + + if (row->priv->multi) { + row->priv->expand_r.x = row->priv->data_r.x; + row->priv->expand_r.y = row->priv->data_r.y + ((row->priv->cell_r.height) / 2) - (row->priv->expand_r.height / 2); + + row->priv->cell_r.y = row->priv->data_r.y; + row->priv->cell_r.height = MAX (row->priv->expand_r.height, row->priv->cell_r.height); + row->priv->cell_r.width = (row->priv->data_r.width - row->priv->expand_r.width); + + row->priv->cell_r.x = row->priv->expand_r.x + row->priv->expand_r.width; + } else { + row->priv->cell_r = row->priv->data_r; + } +} + +void +gdl_data_row_get_size (GdlDataRow *row, int *sep_width, + int *cell_width, int *total_width, int *height) +{ + layout_row (row, 0, 0, 0, 0); + + if (sep_width) { + *sep_width = row->priv->name_r.width + row->priv->sep_r.width + PAD; + } + + if (cell_width) *cell_width = row->priv->data_r.width; + if (total_width) *total_width = row->priv->area_r.width; + if (height) *height = row->priv->area_r.height; +} + +void +gdl_data_row_set_show_name (GdlDataRow *row, gboolean show_name) +{ +} + +void +gdl_data_row_layout (GdlDataRow *row, GdkRectangle *alloc) +{ + layout_row (row, alloc->x, alloc->y, alloc->width, alloc->height); + + if (row->priv->multi && row->priv->expanded) { + GList *l; + GdkRectangle sub; + sub.y = row->priv->expand_r.y + row->priv->expand_r.width + PAD; + sub.x = row->priv->data_r.x + PAD; + sub.width = row->priv->data_r.width - 2 * PAD; + sub.height = row->priv->data_r.height - 2 * PAD; + + for (l = row->priv->subrows; l != NULL; l = l->next) { + gdl_data_row_get_size (GDL_DATA_ROW (l->data), + NULL, NULL, NULL, &sub.height); + gdl_data_row_set_split (GDL_DATA_ROW (l->data), + row->priv->child_split); + gdl_data_row_layout (GDL_DATA_ROW (l->data), + &sub); + sub.y += sub.height; + } + } +} + +#if 0 +#define DRAWR(r) { gdk_draw_rectangle (drawable, GTK_WIDGET (row->priv->view)->style->text_gc[GTK_STATE_NORMAL],FALSE,row->priv->r.x,row->priv->r.y,row->priv->r.width, row->priv->r.height); } +#else +#define DRAWR(r) +#endif + + +void +gdl_data_row_render (GdlDataRow *row, GdkDrawable *drawable, + GdkRectangle *expose_area, + GtkCellRendererState flags) +{ + PangoLayout *layout; + + guint state = GTK_STATE_NORMAL; + + if (row->priv->selected) { + if (flags & GTK_CELL_RENDERER_SELECTED) + state = GTK_STATE_SELECTED; + else + state = GTK_STATE_ACTIVE; + gtk_paint_flat_box (GTK_WIDGET (row->priv->view)->style, + drawable, state, + GTK_SHADOW_NONE, expose_area, + GTK_WIDGET (row->priv->view), "cell_even", + row->priv->area_r.x, row->priv->area_r.y, + row->priv->area_r.width + 1, + row->priv->area_r.height + 1); + + } + + layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), + row->priv->name); + gdk_draw_layout (drawable, + GTK_WIDGET (row->priv->view)->style->text_gc[state], + row->priv->name_r.x, row->priv->name_r.y, layout); + g_object_unref (layout); + DRAWR(name_r); + + layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), "="); + gdk_draw_layout (drawable, + GTK_WIDGET (row->priv->view)->style->text_gc[state], + row->priv->sep_r.x, row->priv->sep_r.y, layout); + g_object_unref (layout); + DRAWR(sep_r); + DRAWR(title_r); + + if (row->priv->cell) { + if (row->priv->focused) { + gtk_paint_focus (GTK_WIDGET (row->priv->view)->style, + drawable, + GTK_WIDGET_STATE (GTK_WIDGET (row->priv->view)), + NULL, GTK_WIDGET (row->priv->view), + "treeview", + row->priv->cell_r.x - 1, + row->priv->cell_r.y - 1, + row->priv->cell_r.width + 2, + row->priv->cell_r.height + 2); + } + + gtk_cell_renderer_render (row->priv->cell, + drawable, GTK_WIDGET (row->priv->view), + &row->priv->area_r, + &row->priv->cell_r, + expose_area, + row->priv->selected ? GTK_CELL_RENDERER_SELECTED : 0); + DRAWR(cell_r); + } + if (row->priv->multi) { + gtk_paint_expander (GTK_WIDGET (row->priv->view)->style, + drawable, + GTK_WIDGET_STATE (GTK_WIDGET (row->priv->view)), + expose_area, + GTK_WIDGET (row->priv->view), + "gdldataview", + row->priv->expand_r.x + row->priv->expand_r.width / 2, + row->priv->expand_r.y + row->priv->expand_r.height / 2, + row->priv->expanded ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED); + DRAWR(expand_r); + + if (row->priv->expanded) { + GList *l; + + for (l = row->priv->subrows; l != NULL; l = l->next) { + gdl_data_row_render (GDL_DATA_ROW (l->data), + drawable, + expose_area, flags); + } + } + gdk_draw_rectangle (drawable, + GTK_WIDGET (row->priv->view)->style->text_gc[GTK_STATE_NORMAL], + FALSE, + row->priv->data_r.x, + row->priv->data_r.y, + row->priv->data_r.width, + row->priv->data_r.height); + } + DRAWR(data_r); +} + + +GdlDataRow * +gdl_data_row_at (GdlDataRow *row, int x, int y) +{ + if (!GDL_POINT_IN (x, y, &row->priv->area_r)) { + return NULL; + } + + if (row->priv->multi && row->priv->expanded) { + GList *l; + for (l = row->priv->subrows; l != NULL; l = l->next) { + GdlDataRow *ret = gdl_data_row_at (GDL_DATA_ROW (l->data), x, y); + if (ret) + return ret; + } + } + + return row; +} + +static gboolean +button_press_event (GdlDataRow *row, GdkEventButton *event, + GtkCellEditable **editable_widget) +{ + if (editable_widget) + *editable_widget = NULL; + + if (GDL_POINT_IN (event->x, event->y, &row->priv->expand_r)) { + if (row->priv->expanded) + contract (row); + else + expand (row); + } + + if (GDL_POINT_IN (event->x, event->y, &row->priv->cell_r) + && row->priv->editable) { + g_return_val_if_fail (editable_widget, FALSE); + *editable_widget = gtk_cell_renderer_start_editing + (row->priv->cell, + (GdkEvent*)event, + GTK_WIDGET (row->priv->view), + "1:2:3", + &row->priv->area_r, + &row->priv->cell_r, + GTK_CELL_RENDERER_SELECTED); + } + + return FALSE; + +} + + +gboolean +gdl_data_row_event (GdlDataRow *row, GdkEvent *event, + GtkCellEditable **editable_widget) +{ + switch (((GdkEventAny *)event)->type) { + case GDK_BUTTON_PRESS: + return button_press_event (row, + (GdkEventButton *)event, + editable_widget); + default: + break; + } + return FALSE; +} + +void +gdl_data_row_get_cell_area (GdlDataRow *row, + GdkRectangle *rect) +{ + *rect = row->priv->cell_r; +} + +void +gdl_data_row_set_split (GdlDataRow *row, int split) +{ + row->priv->split = split; +} + +void +gdl_data_row_set_selected (GdlDataRow *row, gboolean selected) +{ + row->priv->selected = selected; + + /* FIXME: invalidate here */ + gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); +} + +void +gdl_data_row_set_focused (GdlDataRow *row, gboolean focused) +{ + row->priv->focused = focused; + + /* FIXME: invalidate here */ + gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); +} + +const char * +gdl_data_row_get_title (GdlDataRow *row) +{ + return row->priv->name; +} diff --git a/src/libgdl/gdl-data-row.h b/src/libgdl/gdl-data-row.h new file mode 100644 index 000000000..d4928958d --- /dev/null +++ b/src/libgdl/gdl-data-row.h @@ -0,0 +1,90 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifndef GDL_DATA_ROW_H +#define GDL_DATA_ROW_H + +#include + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_DATA_ROW (gdl_data_row_get_type ()) +#define GDL_DATA_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_ROW, GdlDataRow)) +#define GDL_DATA_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_ROW, GdlDataRowClass)) +#define GDL_IS_DATA_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_ROW)) +#define GDL_IS_DATA_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_ROW)) + +typedef struct _GdlDataRow GdlDataRow; +typedef struct _GdlDataRowClass GdlDataRowClass; +typedef struct _GdlDataRowPrivate GdlDataRowPrivate; + +struct _GdlDataRow { + GObject parent; + + GdlDataRowPrivate *priv; +}; + +struct _GdlDataRowClass { + GObjectClass parent_class; +}; + +GType gdl_data_row_get_type (void); +GdlDataRow *gdl_data_row_new (GdlDataView *view, + GtkTreePath *path); +void gdl_data_row_get_size (GdlDataRow *row, + int *text_w, + int *cell_w, + int *total_width, + int *height); +void gdl_data_row_set_show_name (GdlDataRow *row, + gboolean show_name); +void gdl_data_row_layout (GdlDataRow *row, + GdkRectangle *alloc); +void gdl_data_row_render (GdlDataRow *row, + GdkDrawable *drawable, + GdkRectangle *expose_area, + GtkCellRendererState flags); +GdlDataRow *gdl_data_row_at (GdlDataRow *row, + int x, + int y); +gboolean gdl_data_row_event (GdlDataRow *row, + GdkEvent *event, + GtkCellEditable **editable_widget); +void gdl_data_row_get_cell_area (GdlDataRow *row, + GdkRectangle *rect); +void gdl_data_row_set_split (GdlDataRow *row, + int split); +void gdl_data_row_set_selected (GdlDataRow *row, + gboolean selected); +void gdl_data_row_set_focused (GdlDataRow *row, + gboolean focused); +const char *gdl_data_row_get_title (GdlDataRow *row); + + +G_END_DECLS + +#endif diff --git a/src/libgdl/gdl-data-view.c b/src/libgdl/gdl-data-view.c new file mode 100644 index 000000000..81e1795f7 --- /dev/null +++ b/src/libgdl/gdl-data-view.c @@ -0,0 +1,526 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" +#include "gdl-tools.h" +#include "gdl-data-view.h" +#include "gdl-data-frame.h" + +#include "tree-expand.xpm" +#include "tree-contract.xpm" + +struct _GdlDataViewPrivate { + GList *frames; + GList *rows; + GList *widgets; + + GdlDataFrame *selected_frame; + GdlDataRow *selected_row; + + GtkCellEditable *editable; + + GdkPixbuf *close_pixbuf; + GdkPixbuf *expand_pixbuf; + GdkPixbuf *contract_pixbuf; +}; + +typedef struct { + GtkWidget *widget; + int x, y, height, width; +} ChildWidget; + +static void gdl_data_view_instance_init (GdlDataView *dv); +static void gdl_data_view_class_init (GdlDataViewClass *klass); + +GDL_CLASS_BOILERPLATE (GdlDataView, gdl_data_view, GtkLayout, GTK_TYPE_LAYOUT); + + +#define GRID_SPACING 15 + +static void +paint_grid (GtkWidget *widget, GdkDrawable *drawable, + int offset_x, int offset_y, int width, int height) +{ + GdlDataView *dv; + int x; + int y; + + g_return_if_fail (GDL_IS_DATA_VIEW (widget)); + dv = GDL_DATA_VIEW (widget); + + x = offset_x + ((GRID_SPACING - (offset_x % GRID_SPACING)) % GRID_SPACING); + + /* Draw grid points */ + for (; x < width; x += GRID_SPACING) { + y = offset_y + ((GRID_SPACING - (offset_y % GRID_SPACING)) % GRID_SPACING); + + for (; y < height; y += GRID_SPACING) { + gdk_draw_point (drawable, + widget->style->fg_gc[GTK_WIDGET_STATE (widget)], + x, y); + } + } +} + +static void +expose_frames (GdlDataView *view, GdkEventExpose *event) +{ + GList *l; + + for (l = view->priv->frames; l != NULL; l = l->next) { + GdkRectangle intersect; + GdlDataFrame *frame = GDL_DATA_FRAME (l->data); + if (gdk_rectangle_intersect (&frame->area, + &event->area, + &intersect)) { + gdl_data_frame_draw (GDL_DATA_FRAME (l->data), + GTK_LAYOUT(view)->bin_window, + &intersect); + } + } +} + +static void +expose_widgets (GdlDataView *view, GdkEventExpose *event) +{ + GList *l; + + for (l = view->priv->widgets; l != NULL; l = l->next) { + ChildWidget *child = l->data; + gtk_container_propagate_expose (GTK_CONTAINER (view), + child->widget, event); + } +} + +static gboolean +gdl_data_view_expose (GtkWidget *widget, + GdkEventExpose *event) +{ + if (GTK_WIDGET_DRAWABLE (widget)) { + if (event->window == GTK_LAYOUT (widget)->bin_window) { + paint_grid (widget, GTK_LAYOUT (widget)->bin_window, + event->area.x, event->area.y, + event->area.width, event->area.height); + expose_frames (GDL_DATA_VIEW (widget), event); + expose_widgets (GDL_DATA_VIEW (widget), event); + return TRUE; + } else { + GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); + } + } + + return FALSE; +} + +static GdlDataFrame * +frame_at (GdlDataView *dv, int x, int y) +{ + GList *l; + for (l = dv->priv->frames; l != NULL; l = l->next) { + GdlDataFrame *frame = l->data; + if (x >= frame->area.x && x <= frame->area.x + frame->area.width + && y >= frame->area.y && y <= frame->area.y + frame->area.height) { + return frame; + } + } + return NULL; +} + +static GdlDataRow * +row_at (GdlDataView *view, int x, int y) +{ + GList *l; + GdlDataRow *ret = NULL; + for (l = view->priv->rows; l != NULL; l = l->next) { + GdlDataRow *row = l->data; + ret = gdl_data_row_at (row, x, y); + if (ret) break; + } + return ret; +} + +static void +gdl_data_view_put (GdlDataView *view, GtkWidget *widget, + int x, int y, int width, int height) +{ + ChildWidget *child = g_new0 (ChildWidget, 1); + + child->widget = widget; + child->x = x; + child->y = y; + child->width = width; + child->height = height; + + view->priv->widgets = g_list_append (view->priv->widgets, child); + + if (GTK_WIDGET_REALIZED (view)) { + gtk_widget_set_parent_window (child->widget, + GTK_LAYOUT (view)->bin_window); + } + + gtk_widget_set_parent (child->widget, GTK_WIDGET (view)); +} + +static void +stop_editing (GdlDataView *dv) +{ + if (dv->priv->editable) { + gtk_cell_editable_editing_done (dv->priv->editable); + gtk_cell_editable_remove_widget (dv->priv->editable); + } +} + +static void +remove_widget_cb (GtkCellEditable *cell_editable, GdlDataView *view) +{ + if (view->priv->editable) { + view->priv->editable = NULL; + gdl_data_row_set_focused (view->priv->selected_row, FALSE); + gtk_widget_grab_focus (GTK_WIDGET (view)); + gtk_container_remove (GTK_CONTAINER (view), + GTK_WIDGET (cell_editable)); + } +} + +static gboolean +button_press_event_cb (GdlDataView *dv, GdkEventButton *event, gpointer data) +{ + GdlDataFrame *frame; + GdlDataRow *row; + gboolean ret = FALSE; + + stop_editing (dv); + + if (event->type == GDK_BUTTON_PRESS) { + frame = frame_at (dv, event->x, event->y); + if (frame) { + if (dv->priv->selected_frame) { + gdl_data_frame_set_selected (dv->priv->selected_frame, FALSE); + } + gdl_data_frame_set_selected (frame, TRUE); + dv->priv->selected_frame = frame; + } + + row = row_at (dv, event->x, event->y); + if (row) { + GtkCellEditable *editable; + + if (dv->priv->selected_row) { + gdl_data_row_set_selected (dv->priv->selected_row, + FALSE); + } + dv->priv->selected_row = row; + gdl_data_row_set_selected (row, TRUE); + ret = gdl_data_row_event (row, (GdkEvent*)event, + &editable); + if (editable) { + GdkRectangle area; + dv->priv->editable = editable; + gtk_cell_editable_start_editing (editable, + (GdkEvent*)event); + + gdl_data_row_get_cell_area (row, &area); + gdl_data_view_put (dv, + GTK_WIDGET (editable), + area.x, + area.y, + area.width, + area.height); + + gtk_widget_grab_focus (GTK_WIDGET (editable)); + dv->priv->editable = editable; + gdl_data_row_set_focused (row, TRUE); + + g_signal_connect + (G_OBJECT (editable), + "remove_widget", + G_CALLBACK (remove_widget_cb), dv); + } + } + } + + return ret; +} + +static void +gdl_data_view_instance_init (GdlDataView *dv) +{ + GTK_WIDGET_SET_FLAGS (dv, GTK_CAN_FOCUS); + dv->priv = g_new0 (GdlDataViewPrivate, 1); + + g_signal_connect (G_OBJECT (dv), "button_press_event", + G_CALLBACK (button_press_event_cb), + NULL); + + dv->priv->close_pixbuf = gtk_widget_render_icon (GTK_WIDGET (dv), + "gtk-close", + GTK_ICON_SIZE_MENU, + "gdl-data-view-close"); + + dv->priv->expand_pixbuf = + gdk_pixbuf_new_from_xpm_data ((const char **)tree_expand_xpm); + + dv->priv->contract_pixbuf = + gdk_pixbuf_new_from_xpm_data ((const char **)tree_contract_xpm); +} + +static void +gdl_data_view_realize (GtkWidget *widget) +{ + GList *l; + GdlDataView *view = GDL_DATA_VIEW (widget); + + GDL_CALL_PARENT (GTK_WIDGET_CLASS, realize, (widget)); + + for (l = view->priv->widgets; l != NULL; l = l->next) { + ChildWidget *child = l->data; + gtk_widget_set_parent_window (child->widget, + GTK_LAYOUT (view)->bin_window); + } +} + +static void +gdl_data_view_size_request (GtkWidget *widget, GtkRequisition *req) +{ + GList *l; + + req->width = req->height = 0; + + for (l = GDL_DATA_VIEW (widget)->priv->widgets; l != NULL; l = l->next) { + GtkRequisition child_req; + ChildWidget *child = l->data; + + gtk_widget_size_request (child->widget, &child_req); + } +} + + +static void +gdl_data_view_size_allocate (GtkWidget *widget, GtkAllocation *alloc) +{ + GdlDataView *view = GDL_DATA_VIEW (widget); + GList *l; +; + for (l = view->priv->widgets; l != NULL; l = l->next) { + ChildWidget *child = l->data; + GtkAllocation child_alloc; + + child_alloc.x = child->x; + child_alloc.y = child->y; + child_alloc.width = child->width; + child_alloc.height = child->height; + + gtk_widget_size_allocate (child->widget, &child_alloc); + } + GDL_CALL_PARENT (GTK_WIDGET_CLASS, size_allocate, (widget, alloc)); +} + +static void +gdl_data_view_forall (GtkContainer *container, gboolean include_internals, + GtkCallback callback, gpointer callback_data) +{ + GdlDataView *view = GDL_DATA_VIEW (container); + GList *l; + + for (l = view->priv->widgets; l != NULL; l = l->next) { + ChildWidget *child = l->data; + (*callback) (child->widget, callback_data); + } +} + +static void +gdl_data_view_remove (GtkContainer *container, GtkWidget *widget) +{ + GList *l; + GdlDataView *view = GDL_DATA_VIEW (container); + + for (l = view->priv->widgets; l != NULL; l = l->next) { + ChildWidget *child = l->data; + if (child->widget == widget) { + gtk_widget_unparent (widget); + view->priv->widgets = + g_list_remove_link (view->priv->widgets, l); + g_list_free_1 (l); + g_free (child); + return; + } + } +} + +static void +gdl_data_view_destroy (GtkObject *obj) +{ + GdlDataView *dv = GDL_DATA_VIEW (obj); + + stop_editing (dv); + + if (dv->priv) { + GList *l; + for (l = dv->priv->frames; l != NULL; l = l->next) { + g_object_unref (G_OBJECT (l->data)); + } + g_list_free (dv->priv->frames); + + g_object_unref (dv->priv->close_pixbuf); + g_object_unref (dv->priv->expand_pixbuf); + g_object_unref (dv->priv->contract_pixbuf); + + g_free (dv->priv); + dv->priv = NULL; + } + GDL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (obj)); +} + +static void +gdl_data_view_class_init (GdlDataViewClass *klass) +{ + GtkObjectClass *object_class = (GtkObjectClass *)klass; + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + GtkContainerClass *container_class = (GtkContainerClass *)klass; + + parent_class = gtk_type_class (GTK_TYPE_LAYOUT); + + container_class->forall = gdl_data_view_forall; + container_class->remove = gdl_data_view_remove; + + widget_class->expose_event = gdl_data_view_expose; + widget_class->realize = gdl_data_view_realize; + /* FIXME: unrealize */ + widget_class->size_request = gdl_data_view_size_request; + widget_class->size_allocate = gdl_data_view_size_allocate; + object_class->destroy = gdl_data_view_destroy; + + gtk_widget_class_install_style_property (widget_class, + g_param_spec_int ("expander-size", + _("Expander Size"), + _("Size of the expander arrow."), + 0, + G_MAXINT, + 10, + G_PARAM_READABLE)); +} + +GtkWidget * +gdl_data_view_new (void) +{ + GdlDataView *dv; + dv = g_object_new (gdl_data_view_get_type (), NULL); + return GTK_WIDGET (dv); +} + +void +gdl_data_view_set_model (GdlDataView *dv, GdlDataModel *model) +{ + GtkTreePath *path; + GdlDataIter iter; + gboolean iter_valid; + int x = 5; + + dv->model = model; + + path = gtk_tree_path_new_from_string ("0"); + + iter_valid = gdl_data_model_get_iter (model, &iter, path); + gtk_tree_path_free (path); + + while (iter_valid) { + GdlDataFrame *frame; + GdlDataRow *row; + + path = gdl_data_model_get_path (model, &iter); + + row = gdl_data_row_new (dv, path); + frame = gdl_data_frame_new (dv, row); + gdl_data_frame_set_position (frame, x, 5); + + dv->priv->frames = g_list_append (dv->priv->frames, + frame); + dv->priv->rows = g_list_append (dv->priv->rows, row); + + gtk_tree_path_free (path); + + x += 150; + + iter_valid = gdl_data_model_iter_next (model, &iter); + } +} + +void +gdl_data_view_layout (GdlDataView *view) +{ + GList *l; + for (l = view->priv->frames; l != NULL; l = l->next) { + gdl_data_frame_layout (GDL_DATA_FRAME (l->data)); + } +} + +GdkPixbuf * +gdl_data_view_get_close_pixbuf (GdlDataView *view) +{ + return view->priv->close_pixbuf; +} + +void +gdl_data_view_set_close_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) +{ + if (view->priv->close_pixbuf) { + g_object_unref (view->priv->close_pixbuf); + } + + view->priv->close_pixbuf = g_object_ref (pixbuf); +} + +GdkPixbuf * +gdl_data_view_get_expand_pixbuf (GdlDataView *view) +{ + return view->priv->expand_pixbuf; +} + +void +gdl_data_view_set_expand_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) +{ + if (view->priv->expand_pixbuf) { + g_object_unref (view->priv->expand_pixbuf); + } + + view->priv->expand_pixbuf = g_object_ref (pixbuf); +} + +GdkPixbuf * +gdl_data_view_get_contract_pixbuf (GdlDataView *view) +{ + return view->priv->contract_pixbuf; +} + +void +gdl_data_view_set_contract_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) +{ + if (view->priv->contract_pixbuf) { + g_object_unref (view->priv->contract_pixbuf); + } + + view->priv->contract_pixbuf = g_object_ref (pixbuf); +} diff --git a/src/libgdl/gdl-data-view.h b/src/libgdl/gdl-data-view.h new file mode 100644 index 000000000..a29132074 --- /dev/null +++ b/src/libgdl/gdl-data-view.h @@ -0,0 +1,71 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2001 Dave Camp + * + * 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. + */ + +#ifndef GDL_DATA_VIEW_H +#define GDL_DATA_VIEW_H + +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_DATA_VIEW (gdl_data_view_get_type ()) +#define GDL_DATA_VIEW(obj) (GTK_CHECK_CAST ((obj), GDL_TYPE_DATA_VIEW, GdlDataView)) +#define GDL_DATA_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) +#define GDL_IS_DATA_VIEW(obj) (GTK_CHECK_TYPE ((obj), GDL_TYPE_DATA_VIEW)) +#define GDL_IS_DATA_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_VIEW)) +#define GDL_DATA_VIEW_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) + +typedef struct _GdlDataView GdlDataView; +typedef struct _GdlDataViewClass GdlDataViewClass; +typedef struct _GdlDataViewPrivate GdlDataViewPrivate; + +#define GDL_POINT_IN(x1,y1,r) ((x1) >= (r)->x && x1 < (r)->x + (r)->width && (y1) >= (r)->y && y1 < (r)->y + (r)->height) + +struct _GdlDataView { + GtkLayout layout; + + GdlDataModel *model; + + GdlDataViewPrivate *priv; +}; + +struct _GdlDataViewClass { + GtkLayoutClass parent_class; +}; + +GtkType gdl_data_view_get_type (void); +GtkWidget *gdl_data_view_new (void); +void gdl_data_view_set_model (GdlDataView *view, + GdlDataModel *model); +void gdl_data_view_layout (GdlDataView *view); +GdkPixbuf *gdl_data_view_get_close_pixbuf (GdlDataView *view); +void gdl_data_view_set_close_pixbuf (GdlDataView *view, + GdkPixbuf *pixbuf); +GdkPixbuf *gdl_data_view_get_expand_pixbuf (GdlDataView *view); +void gdl_data_view_set_expand_pixbuf (GdlDataView *view, + GdkPixbuf *pixbuf); +GdkPixbuf *gdl_data_view_get_contract_pixbuf (GdlDataView *view); +void gdl_data_view_set_contract_pixbuf (GdlDataView *view, + GdkPixbuf *pixbuf); + +#endif diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c index 2513313ef..2101d9621 100644 --- a/src/libgdl/gdl-dock-item-grip.c +++ b/src/libgdl/gdl-dock-item-grip.c @@ -293,10 +293,10 @@ gdl_dock_item_grip_set_property (GObject *object, case PROP_ITEM: grip->item = g_value_get_object (value); if (grip->item) { - g_signal_connect (grip->item, "notify::long_name", + g_signal_connect (grip->item, "notify::long-name", G_CALLBACK (gdl_dock_item_grip_item_notify), grip); - g_signal_connect (grip->item, "notify::stock_id", + g_signal_connect (grip->item, "notify::stock-id", G_CALLBACK (gdl_dock_item_grip_item_notify), grip); g_signal_connect (grip->item, "notify::behavior", diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c index c01737636..db31ade30 100644 --- a/src/libgdl/gdl-dock-item.c +++ b/src/libgdl/gdl-dock-item.c @@ -1257,8 +1257,9 @@ gdl_dock_item_dock (GdlDockObject *object, GdlDockPlacement position, GValue *other_data) { - GdlDockObject *new_parent, *parent; - gboolean add_ourselves_first; + GdlDockObject *new_parent = NULL; + GdlDockObject *parent, *requestor_parent; + gboolean add_ourselves_first = FALSE; guint available_space=0; gint pref_size=-1; @@ -1372,11 +1373,16 @@ gdl_dock_item_dock (GdlDockObject *object, pref_size = req.width; break; case GDL_DOCK_CENTER: - new_parent = g_object_new (gdl_dock_object_type_from_nick ("notebook"), - "preferred-width", object_req.width, - "preferred-height", object_req.height, - NULL); - add_ourselves_first = TRUE; + /* If the parent is already a DockNotebook, we don't need + to create a new one. */ + if (!GDL_IS_DOCK_NOTEBOOK (parent)) + { + new_parent = g_object_new (gdl_dock_object_type_from_nick ("notebook"), + "preferred-width", object_req.width, + "preferred-height", object_req.height, + NULL); + add_ourselves_first = TRUE; + } break; default: { @@ -1396,9 +1402,12 @@ gdl_dock_item_dock (GdlDockObject *object, gdl_dock_object_freeze (parent); /* ref ourselves since we could be destroyed when detached */ - g_object_ref (object); - GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW); - gdl_dock_object_detach (object, FALSE); + if (new_parent) + { + g_object_ref (object); + GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW); + gdl_dock_object_detach (object, FALSE); + } /* freeze the new parent, so reduce won't get called before it's actually added to our parent */ @@ -1424,7 +1433,14 @@ gdl_dock_item_dock (GdlDockObject *object, /* show automatic object */ if (gtk_widget_get_visible (GTK_WIDGET (object))) + { gtk_widget_show (GTK_WIDGET (new_parent)); + GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW); + gdl_dock_object_thaw (new_parent); + } + else // If the parent is already a DockNotebook, we don't need + // to create a new one. + gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (requestor)); /* use extra docking parameter */ if (position != GDL_DOCK_CENTER && other_data && @@ -1437,10 +1453,17 @@ gdl_dock_item_dock (GdlDockObject *object, g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL); } - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW); g_object_unref (object); - gdl_dock_object_thaw (new_parent); + requestor_parent = gdl_dock_object_get_parent_object (requestor); + if (GDL_IS_DOCK_NOTEBOOK (requestor_parent)) + { + /* Activate the page we just added */ + GdlDockItem* notebook = GDL_DOCK_ITEM (gdl_dock_object_get_parent_object (requestor)); + gtk_notebook_set_page (GTK_NOTEBOOK (notebook->child), + gtk_notebook_page_num (GTK_NOTEBOOK (notebook->child), GTK_WIDGET (requestor))); + } + if (parent) gdl_dock_object_thaw (parent); diff --git a/src/libgdl/gdl-dock-layout.c b/src/libgdl/gdl-dock-layout.c new file mode 100644 index 000000000..c3b0a4dac --- /dev/null +++ b/src/libgdl/gdl-dock-layout.c @@ -0,0 +1,1411 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2002 Gustavo Giráldez + * + * 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.1 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" +#include +#include +#include +#include +#include + +#include "gdl-dock-layout.h" +#include "gdl-tools.h" +#include "gdl-dock-placeholder.h" + + +/* ----- Private variables ----- */ + +enum { + PROP_0, + PROP_MASTER, + PROP_DIRTY +}; + +#define ROOT_ELEMENT "dock-layout" +#define DEFAULT_LAYOUT "__default__" +#define LAYOUT_ELEMENT_NAME "layout" +#define NAME_ATTRIBUTE_NAME "name" + +#define LAYOUT_GLADE_FILE "layout.glade" + +enum { + COLUMN_NAME, + COLUMN_SHOW, + COLUMN_LOCKED, + COLUMN_ITEM +}; + +#define COLUMN_EDITABLE COLUMN_SHOW + +struct _GdlDockLayoutPrivate { + xmlDocPtr doc; + + /* layout list models */ + GtkListStore *items_model; + GtkListStore *layouts_model; + + /* idle control */ + gboolean idle_save_pending; +}; + +typedef struct _GdlDockLayoutUIData GdlDockLayoutUIData; + +struct _GdlDockLayoutUIData { + GdlDockLayout *layout; + GtkWidget *locked_check; + GtkTreeSelection *selection; +}; + + +/* ----- Private prototypes ----- */ + +static void gdl_dock_layout_class_init (GdlDockLayoutClass *klass); + +static void gdl_dock_layout_instance_init (GdlDockLayout *layout); + +static void gdl_dock_layout_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); + +static void gdl_dock_layout_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +static void gdl_dock_layout_dispose (GObject *object); + +static void gdl_dock_layout_build_doc (GdlDockLayout *layout); + +static xmlNodePtr gdl_dock_layout_find_layout (GdlDockLayout *layout, + const gchar *name); + +static void gdl_dock_layout_build_models (GdlDockLayout *layout); + + +/* ----- Private implementation ----- */ + +GDL_CLASS_BOILERPLATE (GdlDockLayout, gdl_dock_layout, GObject, G_TYPE_OBJECT); + +static void +gdl_dock_layout_class_init (GdlDockLayoutClass *klass) +{ + GObjectClass *g_object_class = (GObjectClass *) klass; + + g_object_class->set_property = gdl_dock_layout_set_property; + g_object_class->get_property = gdl_dock_layout_get_property; + g_object_class->dispose = gdl_dock_layout_dispose; + + g_object_class_install_property ( + g_object_class, PROP_MASTER, + g_param_spec_object ("master", _("Master"), + _("GdlDockMaster object which the layout object " + "is attached to"), + GDL_TYPE_DOCK_MASTER, + G_PARAM_READWRITE)); + + g_object_class_install_property ( + g_object_class, PROP_DIRTY, + g_param_spec_boolean ("dirty", _("Dirty"), + _("True if the layouts have changed and need to be " + "saved to a file"), + FALSE, + G_PARAM_READABLE)); +} + +static void +gdl_dock_layout_instance_init (GdlDockLayout *layout) +{ + layout->master = NULL; + layout->dirty = FALSE; + layout->_priv = g_new0 (GdlDockLayoutPrivate, 1); + layout->_priv->idle_save_pending = FALSE; + + gdl_dock_layout_build_models (layout); +} + +static void +gdl_dock_layout_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GdlDockLayout *layout = GDL_DOCK_LAYOUT (object); + + switch (prop_id) { + case PROP_MASTER: + gdl_dock_layout_attach (layout, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + }; +} + +static void +gdl_dock_layout_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GdlDockLayout *layout = GDL_DOCK_LAYOUT (object); + + switch (prop_id) { + case PROP_MASTER: + g_value_set_object (value, layout->master); + break; + case PROP_DIRTY: + g_value_set_boolean (value, layout->dirty); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + }; +} + +static void +gdl_dock_layout_dispose (GObject *object) +{ + GdlDockLayout *layout; + + g_return_if_fail (object != NULL); + g_return_if_fail (GDL_IS_DOCK_LAYOUT (object)); + + layout = GDL_DOCK_LAYOUT (object); + + if (layout->master) + gdl_dock_layout_attach (layout, NULL); + + if (layout->_priv) { + if (layout->_priv->idle_save_pending) { + layout->_priv->idle_save_pending = FALSE; + g_idle_remove_by_data (layout); + } + + if (layout->_priv->doc) { + xmlFreeDoc (layout->_priv->doc); + layout->_priv->doc = NULL; + } + + if (layout->_priv->items_model) { + g_object_unref (layout->_priv->items_model); + g_object_unref (layout->_priv->layouts_model); + layout->_priv->items_model = NULL; + layout->_priv->layouts_model = NULL; + } + + xmlFreeDoc(layout->_priv->doc); + g_free (layout->_priv); + layout->_priv = NULL; + } +} + +static void +gdl_dock_layout_build_doc (GdlDockLayout *layout) +{ + g_return_if_fail (layout->_priv->doc == NULL); + + layout->_priv->doc = xmlNewDoc (BAD_CAST "1.0"); + layout->_priv->doc->children = xmlNewDocNode (layout->_priv->doc, NULL, + BAD_CAST ROOT_ELEMENT, NULL); +} + +static xmlNodePtr +gdl_dock_layout_find_layout (GdlDockLayout *layout, + const gchar *name) +{ + xmlNodePtr node; + gboolean found = FALSE; + + g_return_val_if_fail (layout != NULL, NULL); + + if (!layout->_priv->doc) + return NULL; + + /* get document root */ + node = layout->_priv->doc->children; + for (node = node->children; node; node = node->next) { + xmlChar *layout_name; + + if (strcmp ((char*)node->name, LAYOUT_ELEMENT_NAME)) + /* skip non-layout element */ + continue; + + /* we want the first layout */ + if (!name) + break; + + layout_name = xmlGetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME); + if (!strcmp (name, (char*)layout_name)) + found = TRUE; + xmlFree (layout_name); + + if (found) + break; + }; + return node; +} + +static void +gdl_dock_layout_build_models (GdlDockLayout *layout) +{ + if (!layout->_priv->items_model) { + layout->_priv->items_model = gtk_list_store_new (4, + G_TYPE_STRING, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, + G_TYPE_POINTER); + gtk_tree_sortable_set_sort_column_id ( + GTK_TREE_SORTABLE (layout->_priv->items_model), + COLUMN_NAME, GTK_SORT_ASCENDING); + } + + if (!layout->_priv->layouts_model) { + layout->_priv->layouts_model = gtk_list_store_new (2, G_TYPE_STRING, + G_TYPE_BOOLEAN); + gtk_tree_sortable_set_sort_column_id ( + GTK_TREE_SORTABLE (layout->_priv->layouts_model), + COLUMN_NAME, GTK_SORT_ASCENDING); + } +} + +static void +build_list (GdlDockObject *object, GList **list) +{ + /* add only items, not toplevels */ + if (GDL_IS_DOCK_ITEM (object)) + *list = g_list_prepend (*list, object); +} + +static void +update_items_model (GdlDockLayout *layout) +{ + GList *items, *l; + GtkTreeIter iter; + GtkListStore *store; + gchar *long_name; + gboolean locked; + + g_return_if_fail (layout != NULL); + g_return_if_fail (layout->_priv->items_model != NULL); + + if (!layout->master) + return; + + /* build items list */ + items = NULL; + gdl_dock_master_foreach (layout->master, (GFunc) build_list, &items); + + /* walk the current model */ + store = layout->_priv->items_model; + + /* update items model data after a layout load */ + if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)) { + gboolean valid = TRUE; + + while (valid) { + GdlDockItem *item; + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + COLUMN_ITEM, &item, + -1); + if (item) { + /* look for the object in the items list */ + for (l = items; l && l->data != item; l = l->next); + + if (l) { + /* found, update data */ + g_object_get (item, + "long-name", &long_name, + "locked", &locked, + NULL); + gtk_list_store_set (store, &iter, + COLUMN_NAME, long_name, + COLUMN_SHOW, GDL_DOCK_OBJECT_ATTACHED (item), + COLUMN_LOCKED, locked, + -1); + g_free (long_name); + + /* remove the item from the linked list and keep on walking the model */ + items = g_list_delete_link (items, l); + valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter); + + } else { + /* not found, which means the item has been removed */ + valid = gtk_list_store_remove (store, &iter); + + } + + } else { + /* not a valid row */ + valid = gtk_list_store_remove (store, &iter); + } + } + } + + /* add any remaining objects */ + for (l = items; l; l = l->next) { + GdlDockObject *object = l->data; + + g_object_get (object, + "long-name", &long_name, + "locked", &locked, + NULL); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COLUMN_ITEM, object, + COLUMN_NAME, long_name, + COLUMN_SHOW, GDL_DOCK_OBJECT_ATTACHED (object), + COLUMN_LOCKED, locked, + -1); + g_free (long_name); + } + + g_list_free (items); +} + +static void +update_layouts_model (GdlDockLayout *layout) +{ + GList *items, *l; + GtkTreeIter iter; + + g_return_if_fail (layout != NULL); + g_return_if_fail (layout->_priv->layouts_model != NULL); + + /* build layouts list */ + gtk_list_store_clear (layout->_priv->layouts_model); + items = gdl_dock_layout_get_layouts (layout, FALSE); + for (l = items; l; l = l->next) { + gtk_list_store_append (layout->_priv->layouts_model, &iter); + gtk_list_store_set (layout->_priv->layouts_model, &iter, + COLUMN_NAME, l->data, COLUMN_EDITABLE, TRUE, + -1); + g_free (l->data); + }; + g_list_free (items); +} + + +/* ------- UI functions & callbacks ------ */ + +static void +load_layout_cb (GtkWidget *w, + gpointer data) +{ + GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; + + GtkTreeModel *model; + GtkTreeIter iter; + GdlDockLayout *layout = ui_data->layout; + gchar *name; + + g_return_if_fail (layout != NULL); + + if (gtk_tree_selection_get_selected (ui_data->selection, &model, &iter)) { + gtk_tree_model_get (model, &iter, + COLUMN_NAME, &name, + -1); + gdl_dock_layout_load_layout (layout, name); + g_free (name); + } +} + +static void +delete_layout_cb (GtkWidget *w, gpointer data) +{ + GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; + + GtkTreeModel *model; + GtkTreeIter iter; + GdlDockLayout *layout = ui_data->layout; + gchar *name; + + g_return_if_fail (layout != NULL); + + if (gtk_tree_selection_get_selected (ui_data->selection, &model, &iter)) { + gtk_tree_model_get (model, &iter, + COLUMN_NAME, &name, + -1); + gdl_dock_layout_delete_layout (layout, name); + gtk_list_store_remove (GTK_LIST_STORE (model), &iter); + g_free (name); + }; +} + +static void +show_toggled_cb (GtkCellRendererToggle *renderer, + gchar *path_str, + gpointer data) +{ + GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; + + GdlDockLayout *layout = ui_data->layout; + GtkTreeModel *model; + GtkTreeIter iter; + GtkTreePath *path = gtk_tree_path_new_from_string (path_str); + gboolean value; + GdlDockItem *item; + + g_return_if_fail (layout != NULL); + + model = GTK_TREE_MODEL (layout->_priv->items_model); + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, + COLUMN_SHOW, &value, + COLUMN_ITEM, &item, + -1); + + value = !value; + if (value) + gdl_dock_item_show_item (item); + else + gdl_dock_item_hide_item (item); + + gtk_tree_path_free (path); +} + +static void +all_locked_toggled_cb (GtkWidget *widget, + gpointer data) +{ + GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; + GdlDockMaster *master; + gboolean locked; + + g_return_if_fail (ui_data->layout != NULL); + master = ui_data->layout->master; + g_return_if_fail (master != NULL); + + locked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + g_object_set (master, "locked", locked ? 1 : 0, NULL); +} + +static void +layout_ui_destroyed (GtkWidget *widget, + gpointer user_data) +{ + GdlDockLayoutUIData *ui_data; + + /* widget is the GtkContainer */ + ui_data = g_object_get_data (G_OBJECT (widget), "ui_data"); + if (ui_data) { + if (ui_data->layout) { + if (ui_data->layout->master) + /* disconnet the notify handler */ + g_signal_handlers_disconnect_matched (ui_data->layout->master, + G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, + ui_data); + + g_object_remove_weak_pointer (G_OBJECT (ui_data->layout), + (gpointer *) &ui_data->layout); + ui_data->layout = NULL; + } + g_object_set_data (G_OBJECT (widget), "ui_data", NULL); + g_free (ui_data); + } +} + +static void +master_locked_notify_cb (GdlDockMaster *master, + GParamSpec *pspec, + gpointer user_data) +{ + GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) user_data; + gint locked; + + g_object_get (master, "locked", &locked, NULL); + if (locked == -1) { + gtk_toggle_button_set_inconsistent ( + GTK_TOGGLE_BUTTON (ui_data->locked_check), TRUE); + } + else { + gtk_toggle_button_set_inconsistent ( + GTK_TOGGLE_BUTTON (ui_data->locked_check), FALSE); + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (ui_data->locked_check), (locked == 1)); + } +} + +static GladeXML * +load_interface (const gchar *top_widget) +{ + GladeXML *gui; + gchar *gui_file; + + /* load ui */ + gui_file = g_build_filename (GDL_GLADEDIR, LAYOUT_GLADE_FILE, NULL); + gui = glade_xml_new (gui_file, top_widget, GETTEXT_PACKAGE); + g_free (gui_file); + if (!gui) { + /* FIXME: pop up an error dialog */ + g_warning (_("Could not load layout user interface file '%s'"), + LAYOUT_GLADE_FILE); + return NULL; + }; + return gui; +} + +static GtkWidget * +gdl_dock_layout_construct_items_ui (GdlDockLayout *layout) +{ + GladeXML *gui; + GtkWidget *container; + GtkWidget *items_list; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + + GdlDockLayoutUIData *ui_data; + + /* load the interface if it wasn't provided */ + gui = load_interface ("items_vbox"); + + if (!gui) + return NULL; + + /* get the container */ + container = glade_xml_get_widget (gui, "items_vbox"); + + ui_data = g_new0 (GdlDockLayoutUIData, 1); + ui_data->layout = layout; + g_object_add_weak_pointer (G_OBJECT (layout), + (gpointer *) &ui_data->layout); + g_object_set_data (G_OBJECT (container), "ui_data", ui_data); + + /* get ui widget references */ + ui_data->locked_check = glade_xml_get_widget (gui, "locked_check"); + items_list = glade_xml_get_widget (gui, "items_list"); + + /* locked check connections */ + g_signal_connect (ui_data->locked_check, "toggled", + (GCallback) all_locked_toggled_cb, ui_data); + if (layout->master) { + g_signal_connect (layout->master, "notify::locked", + (GCallback) master_locked_notify_cb, ui_data); + /* force update now */ + master_locked_notify_cb (layout->master, NULL, ui_data); + } + + /* set models */ + gtk_tree_view_set_model (GTK_TREE_VIEW (items_list), + GTK_TREE_MODEL (layout->_priv->items_model)); + + /* construct list views */ + renderer = gtk_cell_renderer_toggle_new (); + g_signal_connect (renderer, "toggled", + G_CALLBACK (show_toggled_cb), ui_data); + column = gtk_tree_view_column_new_with_attributes (_("Visible"), + renderer, + "active", COLUMN_SHOW, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (items_list), column); + + renderer = gtk_cell_renderer_text_new (); + column = gtk_tree_view_column_new_with_attributes (_("Item"), + renderer, + "text", COLUMN_NAME, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (items_list), column); + + /* connect signals */ + g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); + + g_object_unref (gui); + + return container; +} + +static void +cell_edited_cb (GtkCellRendererText *cell, + const gchar *path_string, + const gchar *new_text, + gpointer data) +{ + GdlDockLayoutUIData *ui_data = data; + GtkTreeModel *model; + GtkTreePath *path; + GtkTreeIter iter; + gchar *name; + xmlNodePtr node; + + model = GTK_TREE_MODEL (ui_data->layout->_priv->layouts_model); + path = gtk_tree_path_new_from_string (path_string); + + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1); + + node = gdl_dock_layout_find_layout (ui_data->layout, name); + g_free (name); + g_return_if_fail (node != NULL); + + xmlSetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME, BAD_CAST new_text); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_NAME, new_text, + COLUMN_EDITABLE, TRUE, -1); + + gdl_dock_layout_save_layout (ui_data->layout, new_text); + + gtk_tree_path_free (path); +} + +static GtkWidget * +gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) +{ + GladeXML *gui; + GtkWidget *container; + GtkWidget *layouts_list; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; + + GdlDockLayoutUIData *ui_data; + + /* load the interface if it wasn't provided */ + gui = load_interface ("layouts_vbox"); + + if (!gui) + return NULL; + + /* get the container */ + container = glade_xml_get_widget (gui, "layouts_vbox"); + + ui_data = g_new0 (GdlDockLayoutUIData, 1); + ui_data->layout = layout; + g_object_add_weak_pointer (G_OBJECT (layout), + (gpointer *) &ui_data->layout); + g_object_set_data (G_OBJECT (container), "ui-data", ui_data); + + /* get ui widget references */ + layouts_list = glade_xml_get_widget (gui, "layouts_list"); + + /* set models */ + gtk_tree_view_set_model (GTK_TREE_VIEW (layouts_list), + GTK_TREE_MODEL (layout->_priv->layouts_model)); + + /* construct list views */ + renderer = gtk_cell_renderer_text_new (); + g_signal_connect (G_OBJECT (renderer), "edited", + G_CALLBACK (cell_edited_cb), ui_data); + column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, + "text", COLUMN_NAME, + "editable", COLUMN_EDITABLE, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (layouts_list), column); + + ui_data->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (layouts_list)); + + /* connect signals */ + glade_xml_signal_connect_data (gui, "on_load_button_clicked", + GTK_SIGNAL_FUNC (load_layout_cb), ui_data); + glade_xml_signal_connect_data (gui, "on_delete_button_clicked", + GTK_SIGNAL_FUNC (delete_layout_cb), ui_data); + + g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); + + g_object_unref (gui); + + return container; +} + +static GtkWidget * +gdl_dock_layout_construct_ui (GdlDockLayout *layout) +{ + GtkWidget *container, *child; + + container = gtk_notebook_new (); + gtk_widget_show (container); + + child = gdl_dock_layout_construct_items_ui (layout); + if (child) + gtk_notebook_append_page (GTK_NOTEBOOK (container), + child, + gtk_label_new (_("Dock items"))); + + child = gdl_dock_layout_construct_layouts_ui (layout); + if (child) + gtk_notebook_append_page (GTK_NOTEBOOK (container), + child, + gtk_label_new (_("Saved layouts"))); + + gtk_notebook_set_current_page (GTK_NOTEBOOK (container), 0); + + return container; +} + +/* ----- Save & Load layout functions --------- */ + +#define GDL_DOCK_PARAM_CONSTRUCTION(p) \ + (((p)->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY)) != 0) + +static GdlDockObject * +gdl_dock_layout_setup_object (GdlDockMaster *master, + xmlNodePtr node, + gint *n_after_params, + GParameter **after_params) +{ + GdlDockObject *object = NULL; + GType object_type; + xmlChar *object_name; + GObjectClass *object_class = NULL; + + GParamSpec **props; + guint n_props, i; + GParameter *params = NULL; + gint n_params = 0; + GValue serialized = { 0, }; + + object_name = xmlGetProp (node, BAD_CAST GDL_DOCK_NAME_PROPERTY); + if (object_name && strlen ((char*)object_name) > 0) { + /* the object must already be bound to the master */ + object = gdl_dock_master_get_object (master, (char*)object_name); + + xmlFree (object_name); + object_type = object ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE; + } + else { + /* the object should be automatic, so create it by + retrieving the object type from the dock registry */ + object_type = gdl_dock_object_type_from_nick ((char*)node->name); + if (object_type == G_TYPE_NONE) { + g_warning (_("While loading layout: don't know how to create " + "a dock object whose nick is '%s'"), node->name); + } + } + + if (object_type == G_TYPE_NONE || !G_TYPE_IS_CLASSED (object_type)) + return NULL; + + object_class = g_type_class_ref (object_type); + props = g_object_class_list_properties (object_class, &n_props); + + /* create parameter slots */ + /* extra parameter is the master */ + params = g_new0 (GParameter, n_props + 1); + *after_params = g_new0 (GParameter, n_props); + *n_after_params = 0; + + /* initialize value used for transformations */ + g_value_init (&serialized, GDL_TYPE_DOCK_PARAM); + + for (i = 0; i < n_props; i++) { + xmlChar *xml_prop; + + /* process all exported properties, skip + GDL_DOCK_NAME_PROPERTY, since named items should + already by in the master */ + if (!(props [i]->flags & GDL_DOCK_PARAM_EXPORT) || + !strcmp (props [i]->name, GDL_DOCK_NAME_PROPERTY)) + continue; + + /* get the property from xml if there is one */ + xml_prop = xmlGetProp (node, BAD_CAST props [i]->name); + if (xml_prop) { + g_value_set_static_string (&serialized, (char*)xml_prop); + + if (!GDL_DOCK_PARAM_CONSTRUCTION (props [i]) && + (props [i]->flags & GDL_DOCK_PARAM_AFTER)) { + (*after_params) [*n_after_params].name = props [i]->name; + g_value_init (&((* after_params) [*n_after_params].value), + props [i]->value_type); + g_value_transform (&serialized, + &((* after_params) [*n_after_params].value)); + (*n_after_params)++; + } + else if (!object || (!GDL_DOCK_PARAM_CONSTRUCTION (props [i]) && object)) { + params [n_params].name = props [i]->name; + g_value_init (&(params [n_params].value), props [i]->value_type); + g_value_transform (&serialized, &(params [n_params].value)); + n_params++; + } + xmlFree (xml_prop); + } + } + g_value_unset (&serialized); + g_free (props); + + if (!object) { + params [n_params].name = GDL_DOCK_MASTER_PROPERTY; + g_value_init (¶ms [n_params].value, GDL_TYPE_DOCK_MASTER); + g_value_set_object (¶ms [n_params].value, master); + n_params++; + + /* construct the object if we have to */ + /* set the master, so toplevels are created correctly and + other objects are bound */ + object = g_object_newv (object_type, n_params, params); + } + else { + /* set the parameters to the existing object */ + for (i = 0; i < n_params; i++) + g_object_set_property (G_OBJECT (object), + params [i].name, + ¶ms [i].value); + } + + /* free the parameters (names are static/const strings) */ + for (i = 0; i < n_params; i++) + g_value_unset (¶ms [i].value); + g_free (params); + + /* finally unref object class */ + g_type_class_unref (object_class); + + return object; +} + +static void +gdl_dock_layout_recursive_build (GdlDockMaster *master, + xmlNodePtr parent_node, + GdlDockObject *parent) +{ + GdlDockObject *object; + xmlNodePtr node; + + g_return_if_fail (master != NULL && parent_node != NULL); + + /* if parent is NULL we should build toplevels */ + for (node = parent_node->children; node; node = node->next) { + GParameter *after_params = NULL; + gint n_after_params = 0, i; + + object = gdl_dock_layout_setup_object (master, node, + &n_after_params, + &after_params); + + if (object) { + gdl_dock_object_freeze (object); + + /* recurse here to catch placeholders */ + gdl_dock_layout_recursive_build (master, node, object); + + if (GDL_IS_DOCK_PLACEHOLDER (object)) + /* placeholders are later attached to the parent */ + gdl_dock_object_detach (object, FALSE); + + /* apply "after" parameters */ + for (i = 0; i < n_after_params; i++) { + g_object_set_property (G_OBJECT (object), + after_params [i].name, + &after_params [i].value); + /* unset and free the value */ + g_value_unset (&after_params [i].value); + } + g_free (after_params); + + /* add the object to the parent */ + if (parent) { + if (GDL_IS_DOCK_PLACEHOLDER (object)) + gdl_dock_placeholder_attach (GDL_DOCK_PLACEHOLDER (object), + parent); + else if (gdl_dock_object_is_compound (parent)) { + gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (object)); + if (GTK_WIDGET_VISIBLE (parent)) + gtk_widget_show (GTK_WIDGET (object)); + } + } + else { + GdlDockObject *controller = gdl_dock_master_get_controller (master); + if (controller != object && GTK_WIDGET_VISIBLE (controller)) + gtk_widget_show (GTK_WIDGET (object)); + } + + /* call reduce just in case any child is missing */ + if (gdl_dock_object_is_compound (object)) + gdl_dock_object_reduce (object); + + gdl_dock_object_thaw (object); + } + } +} + +static void +_gdl_dock_layout_foreach_detach (GdlDockObject *object) +{ + gdl_dock_object_detach (object, TRUE); +} + +static void +gdl_dock_layout_foreach_toplevel_detach (GdlDockObject *object) +{ + gtk_container_foreach (GTK_CONTAINER (object), + (GtkCallback) _gdl_dock_layout_foreach_detach, + NULL); +} + +static void +gdl_dock_layout_load (GdlDockMaster *master, xmlNodePtr node) +{ + g_return_if_fail (master != NULL && node != NULL); + + /* start by detaching all items from the toplevels */ + gdl_dock_master_foreach_toplevel (master, TRUE, + (GFunc) gdl_dock_layout_foreach_toplevel_detach, + NULL); + + gdl_dock_layout_recursive_build (master, node, NULL); +} + +static void +gdl_dock_layout_foreach_object_save (GdlDockObject *object, + gpointer user_data) +{ + struct { + xmlNodePtr where; + GHashTable *placeholders; + } *info = user_data, info_child; + + xmlNodePtr node; + guint n_props, i; + GParamSpec **props; + GValue attr = { 0, }; + + g_return_if_fail (object != NULL && GDL_IS_DOCK_OBJECT (object)); + g_return_if_fail (info->where != NULL); + + node = xmlNewChild (info->where, + NULL, /* ns */ + BAD_CAST gdl_dock_object_nick_from_type (G_TYPE_FROM_INSTANCE (object)), + BAD_CAST NULL); /* contents */ + + /* get object exported attributes */ + props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), + &n_props); + g_value_init (&attr, GDL_TYPE_DOCK_PARAM); + for (i = 0; i < n_props; i++) { + GParamSpec *p = props [i]; + + if (p->flags & GDL_DOCK_PARAM_EXPORT) { + GValue v = { 0, }; + + /* export this parameter */ + /* get the parameter value */ + g_value_init (&v, p->value_type); + g_object_get_property (G_OBJECT (object), + p->name, + &v); + + /* only save the object "name" if it is set + (i.e. don't save the empty string) */ + if (strcmp (p->name, GDL_DOCK_NAME_PROPERTY) || + g_value_get_string (&v)) { + if (g_value_transform (&v, &attr)) + xmlSetProp (node, BAD_CAST p->name, BAD_CAST g_value_get_string (&attr)); + } + + /* free the parameter value */ + g_value_unset (&v); + } + } + g_value_unset (&attr); + g_free (props); + + info_child = *info; + info_child.where = node; + + /* save placeholders for the object */ + if (info->placeholders && !GDL_IS_DOCK_PLACEHOLDER (object)) { + GList *lph = g_hash_table_lookup (info->placeholders, object); + for (; lph; lph = lph->next) + gdl_dock_layout_foreach_object_save (GDL_DOCK_OBJECT (lph->data), + (gpointer) &info_child); + } + + /* recurse the object if appropiate */ + if (gdl_dock_object_is_compound (object)) { + gtk_container_foreach (GTK_CONTAINER (object), + (GtkCallback) gdl_dock_layout_foreach_object_save, + (gpointer) &info_child); + } +} + +static void +add_placeholder (GdlDockObject *object, + GHashTable *placeholders) +{ + if (GDL_IS_DOCK_PLACEHOLDER (object)) { + GdlDockObject *host; + GList *l; + + g_object_get (object, "host", &host, NULL); + if (host) { + l = g_hash_table_lookup (placeholders, host); + /* add the current placeholder to the list of placeholders + for that host */ + if (l) + g_hash_table_steal (placeholders, host); + + l = g_list_prepend (l, object); + g_hash_table_insert (placeholders, host, l); + g_object_unref (host); + } + } +} + +static void +gdl_dock_layout_save (GdlDockMaster *master, + xmlNodePtr where) +{ + struct { + xmlNodePtr where; + GHashTable *placeholders; + } info; + + GHashTable *placeholders; + + g_return_if_fail (master != NULL && where != NULL); + + /* build the placeholder's hash: the hash keeps lists of + * placeholders associated to each object, so that we can save the + * placeholders when we are saving the object (since placeholders + * don't show up in the normal widget hierarchy) */ + placeholders = g_hash_table_new_full (g_direct_hash, g_direct_equal, + NULL, (GDestroyNotify) g_list_free); + gdl_dock_master_foreach (master, (GFunc) add_placeholder, placeholders); + + /* save the layout recursively */ + info.where = where; + info.placeholders = placeholders; + + gdl_dock_master_foreach_toplevel (master, TRUE, + (GFunc) gdl_dock_layout_foreach_object_save, + (gpointer) &info); + + g_hash_table_destroy (placeholders); +} + + +/* ----- Public interface ----- */ + +GdlDockLayout * +gdl_dock_layout_new (GdlDock *dock) +{ + GdlDockMaster *master = NULL; + + /* get the master of the given dock */ + if (dock) + master = GDL_DOCK_OBJECT_GET_MASTER (dock); + + return g_object_new (GDL_TYPE_DOCK_LAYOUT, + "master", master, + NULL); +} + +static gboolean +gdl_dock_layout_idle_save (GdlDockLayout *layout) +{ + /* save default layout */ + gdl_dock_layout_save_layout (layout, NULL); + + layout->_priv->idle_save_pending = FALSE; + + return FALSE; +} + +static void +gdl_dock_layout_layout_changed_cb (GdlDockMaster *master, + GdlDockLayout *layout) +{ + /* update model */ + update_items_model (layout); + + if (!layout->_priv->idle_save_pending) { + g_idle_add ((GSourceFunc) gdl_dock_layout_idle_save, layout); + layout->_priv->idle_save_pending = TRUE; + } +} + +void +gdl_dock_layout_attach (GdlDockLayout *layout, + GdlDockMaster *master) +{ + g_return_if_fail (layout != NULL); + g_return_if_fail (master == NULL || GDL_IS_DOCK_MASTER (master)); + + if (layout->master) { + g_signal_handlers_disconnect_matched (layout->master, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, layout); + g_object_unref (layout->master); + } + + gtk_list_store_clear (layout->_priv->items_model); + + layout->master = master; + if (layout->master) { + g_object_ref (layout->master); + g_signal_connect (layout->master, "layout-changed", + (GCallback) gdl_dock_layout_layout_changed_cb, + layout); + } + + update_items_model (layout); +} + +gboolean +gdl_dock_layout_load_layout (GdlDockLayout *layout, + const gchar *name) +{ + xmlNodePtr node; + gchar *layout_name; + + g_return_val_if_fail (layout != NULL, FALSE); + + if (!layout->_priv->doc || !layout->master) + return FALSE; + + if (!name) + layout_name = DEFAULT_LAYOUT; + else + layout_name = (gchar *) name; + + node = gdl_dock_layout_find_layout (layout, layout_name); + if (!node && !name) + /* return the first layout if the default name failed to load */ + node = gdl_dock_layout_find_layout (layout, NULL); + + if (node) { + gdl_dock_layout_load (layout->master, node); + return TRUE; + } else + return FALSE; +} + +void +gdl_dock_layout_save_layout (GdlDockLayout *layout, + const gchar *name) +{ + xmlNodePtr node; + gchar *layout_name; + + g_return_if_fail (layout != NULL); + g_return_if_fail (layout->master != NULL); + + if (!layout->_priv->doc) + gdl_dock_layout_build_doc (layout); + + if (!name) + layout_name = DEFAULT_LAYOUT; + else + layout_name = (gchar *) name; + + /* delete any previously node with the same name */ + node = gdl_dock_layout_find_layout (layout, layout_name); + if (node) { + xmlUnlinkNode (node); + xmlFreeNode (node); + }; + + /* create the new node */ + node = xmlNewChild (layout->_priv->doc->children, NULL, + BAD_CAST LAYOUT_ELEMENT_NAME, NULL); + xmlSetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME, BAD_CAST layout_name); + + /* save the layout */ + gdl_dock_layout_save (layout->master, node); + layout->dirty = TRUE; + g_object_notify (G_OBJECT (layout), "dirty"); +} + +void +gdl_dock_layout_delete_layout (GdlDockLayout *layout, + const gchar *name) +{ + xmlNodePtr node; + + g_return_if_fail (layout != NULL); + + /* don't allow the deletion of the default layout */ + if (!name || !strcmp (DEFAULT_LAYOUT, name)) + return; + + node = gdl_dock_layout_find_layout (layout, name); + if (node) { + xmlUnlinkNode (node); + xmlFreeNode (node); + layout->dirty = TRUE; + g_object_notify (G_OBJECT (layout), "dirty"); + } +} + +void +gdl_dock_layout_run_manager (GdlDockLayout *layout) +{ + GtkWidget *dialog, *container; + GtkWidget *parent = NULL; + + g_return_if_fail (layout != NULL); + + if (!layout->master) + /* not attached to a dock yet */ + return; + + container = gdl_dock_layout_construct_ui (layout); + if (!container) + return; + + parent = GTK_WIDGET (gdl_dock_master_get_controller (layout->master)); + if (parent) + parent = gtk_widget_get_toplevel (parent); + + dialog = gtk_dialog_new_with_buttons (_("Layout managment"), + parent ? GTK_WINDOW (parent) : NULL, + GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR, + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, + NULL); + + gtk_window_set_default_size (GTK_WINDOW (dialog), -1, 300); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), container); + + gtk_dialog_run (GTK_DIALOG (dialog)); + + gtk_widget_destroy (dialog); +} + +gboolean +gdl_dock_layout_load_from_file (GdlDockLayout *layout, + const gchar *filename) +{ + gboolean retval = FALSE; + + if (layout->_priv->doc) { + xmlFreeDoc (layout->_priv->doc); + layout->_priv->doc = NULL; + layout->dirty = FALSE; + g_object_notify (G_OBJECT (layout), "dirty"); + } + + /* FIXME: cannot open symlinks */ + if (g_file_test (filename, G_FILE_TEST_IS_REGULAR)) { + layout->_priv->doc = xmlParseFile (filename); + if (layout->_priv->doc) { + xmlNodePtr root = layout->_priv->doc->children; + /* minimum validation: test the root element */ + if (root && !strcmp ((char*)root->name, ROOT_ELEMENT)) { + update_layouts_model (layout); + retval = TRUE; + } else { + xmlFreeDoc (layout->_priv->doc); + layout->_priv->doc = NULL; + } + } + } + + return retval; +} + +gboolean +gdl_dock_layout_save_to_file (GdlDockLayout *layout, + const gchar *filename) +{ + FILE *file_handle; + int bytes; + gboolean retval = FALSE; + + g_return_val_if_fail (layout != NULL, FALSE); + g_return_val_if_fail (filename != NULL, FALSE); + + /* if there is still no xml doc, create an empty one */ + if (!layout->_priv->doc) + gdl_dock_layout_build_doc (layout); + + file_handle = fopen (filename, "w"); + if (file_handle) { + bytes = xmlDocDump (file_handle, layout->_priv->doc); + if (bytes >= 0) { + layout->dirty = FALSE; + g_object_notify (G_OBJECT (layout), "dirty"); + retval = TRUE; + }; + fclose (file_handle); + }; + + return retval; +} + +gboolean +gdl_dock_layout_is_dirty (GdlDockLayout *layout) +{ + g_return_val_if_fail (layout != NULL, FALSE); + + return layout->dirty; +}; + +GList * +gdl_dock_layout_get_layouts (GdlDockLayout *layout, + gboolean include_default) +{ + GList *retval = NULL; + xmlNodePtr node; + + g_return_val_if_fail (layout != NULL, NULL); + + if (!layout->_priv->doc) + return NULL; + + node = layout->_priv->doc->children; + for (node = node->children; node; node = node->next) { + xmlChar *name; + + if (strcmp ((char*)node->name, LAYOUT_ELEMENT_NAME)) + continue; + + name = xmlGetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME); + if (include_default || strcmp ((char*)name, DEFAULT_LAYOUT)) + retval = g_list_prepend (retval, g_strdup ((char*)name)); + xmlFree (name); + }; + retval = g_list_reverse (retval); + + return retval; +} + +GtkWidget * +gdl_dock_layout_get_ui (GdlDockLayout *layout) +{ + GtkWidget *ui; + + g_return_val_if_fail (layout != NULL, NULL); + ui = gdl_dock_layout_construct_ui (layout); + + return ui; +} + +GtkWidget * +gdl_dock_layout_get_items_ui (GdlDockLayout *layout) +{ + GtkWidget *ui; + + g_return_val_if_fail (layout != NULL, NULL); + ui = gdl_dock_layout_construct_items_ui (layout); + + return ui; +} + +GtkWidget * +gdl_dock_layout_get_layouts_ui (GdlDockLayout *layout) +{ + GtkWidget *ui; + + g_return_val_if_fail (layout != NULL, NULL); + ui = gdl_dock_layout_construct_layouts_ui (layout); + + return ui; +} diff --git a/src/libgdl/gdl-dock-layout.h b/src/libgdl/gdl-dock-layout.h new file mode 100644 index 000000000..2ce5d13b3 --- /dev/null +++ b/src/libgdl/gdl-dock-layout.h @@ -0,0 +1,98 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 2002 Gustavo Girldez + * + * 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.1 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef __GDL_DOCK_LAYOUT_H__ +#define __GDL_DOCK_LAYOUT_H__ + +#include +#include "libgdl/gdl-dock-master.h" +#include "libgdl/gdl-dock.h" + +G_BEGIN_DECLS + +/* standard macros */ +#define GDL_TYPE_DOCK_LAYOUT (gdl_dock_layout_get_type ()) +#define GDL_DOCK_LAYOUT(object) (GTK_CHECK_CAST ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayout)) +#define GDL_DOCK_LAYOUT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) +#define GDL_IS_DOCK_LAYOUT(object) (GTK_CHECK_TYPE ((object), GDL_TYPE_DOCK_LAYOUT)) +#define GDL_IS_DOCK_LAYOUT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_LAYOUT)) +#define GDL_DOCK_LAYOUT_GET_CLASS(object) (GTK_CHECK_GET_CLASS ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) + +/* data types & structures */ +typedef struct _GdlDockLayout GdlDockLayout; +typedef struct _GdlDockLayoutClass GdlDockLayoutClass; +typedef struct _GdlDockLayoutPrivate GdlDockLayoutPrivate; + +struct _GdlDockLayout { + GObject g_object; + + gboolean dirty; + GdlDockMaster *master; + + GdlDockLayoutPrivate *_priv; +}; + +struct _GdlDockLayoutClass { + GObjectClass g_object_class; +}; + + +/* public interface */ + +GType gdl_dock_layout_get_type (void); + +GdlDockLayout *gdl_dock_layout_new (GdlDock *dock); + +void gdl_dock_layout_attach (GdlDockLayout *layout, + GdlDockMaster *master); + +gboolean gdl_dock_layout_load_layout (GdlDockLayout *layout, + const gchar *name); + +void gdl_dock_layout_save_layout (GdlDockLayout *layout, + const gchar *name); + +void gdl_dock_layout_delete_layout (GdlDockLayout *layout, + const gchar *name); + +GList *gdl_dock_layout_get_layouts (GdlDockLayout *layout, + gboolean include_default); + +void gdl_dock_layout_run_manager (GdlDockLayout *layout); + +gboolean gdl_dock_layout_load_from_file (GdlDockLayout *layout, + const gchar *filename); + +gboolean gdl_dock_layout_save_to_file (GdlDockLayout *layout, + const gchar *filename); + +gboolean gdl_dock_layout_is_dirty (GdlDockLayout *layout); + +GtkWidget *gdl_dock_layout_get_ui (GdlDockLayout *layout); +GtkWidget *gdl_dock_layout_get_items_ui (GdlDockLayout *layout); +GtkWidget *gdl_dock_layout_get_layouts_ui (GdlDockLayout *layout); + +G_END_DECLS + +#endif + + diff --git a/src/libgdl/gdl-dock-object.c b/src/libgdl/gdl-dock-object.c index 9bdcd18ed..129cc28d9 100644 --- a/src/libgdl/gdl-dock-object.c +++ b/src/libgdl/gdl-dock-object.c @@ -396,6 +396,7 @@ gdl_dock_object_real_reduce (GdlDockObject *object) children = gtk_container_get_children (GTK_CONTAINER (object)); if (g_list_length (children) <= 1) { GList *l; + GList *dchildren = NULL; /* detach ourselves and then re-attach our children to our current parent. if we are not currently attached, the @@ -403,18 +404,41 @@ gdl_dock_object_real_reduce (GdlDockObject *object) if (parent) gdl_dock_object_freeze (parent); gdl_dock_object_freeze (object); - gdl_dock_object_detach (object, FALSE); + /* Detach the children before detaching this object, since in this + * way the children can have access to the whole object hierarchy. + * Set the InDetach flag now, so the children know that this object + * is going to be detached. */ + + + GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_DETACH); + for (l = children; l; l = l->next) { - GdlDockObject *child = GDL_DOCK_OBJECT (l->data); + GdlDockObject *child; + + if (!GDL_IS_DOCK_OBJECT (l->data)) + continue; + + child = GDL_DOCK_OBJECT (l->data); g_object_ref (child); - GDL_DOCK_OBJECT_SET_FLAGS (child, GDL_DOCK_IN_REFLOW); gdl_dock_object_detach (child, FALSE); + GDL_DOCK_OBJECT_SET_FLAGS (child, GDL_DOCK_IN_REFLOW); if (parent) - gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (child)); + dchildren = g_list_append (dchildren, child); GDL_DOCK_OBJECT_UNSET_FLAGS (child, GDL_DOCK_IN_REFLOW); - g_object_unref (child); } + /* Now it can be detached */ + gdl_dock_object_detach (object, FALSE); + + /* After detaching the reduced object, we can add the + children (the only child in fact) to the new parent */ + for (l = dchildren; l; l = l->next) { + gtk_container_add (GTK_CONTAINER (parent), l->data); + g_object_unref (l->data); + } + g_list_free (dchildren); + + /* sink the widget, so any automatic floating widget is destroyed */ g_object_ref_sink (object); /* don't reenter */ @@ -469,6 +493,9 @@ gdl_dock_object_detach (GdlDockObject *object, { g_return_if_fail (object != NULL); + if (!GDL_IS_DOCK_OBJECT (object)) + return; + if (!GDL_DOCK_OBJECT_ATTACHED (object)) return; diff --git a/src/libgdl/gdl-dock-placeholder.c b/src/libgdl/gdl-dock-placeholder.c index ca7763a55..33934e2e0 100644 --- a/src/libgdl/gdl-dock-placeholder.c +++ b/src/libgdl/gdl-dock-placeholder.c @@ -189,14 +189,14 @@ gdl_dock_placeholder_class_init (GdlDockPlaceholderClass *klass) g_object_class_install_property ( g_object_class, PROP_FLOAT_X, g_param_spec_int ("floatx", _("X-Coordinate"), - _("X coordinate for dock when floating"), + _("X-Coordinate for dock when floating"), -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | GDL_DOCK_PARAM_EXPORT)); g_object_class_install_property ( g_object_class, PROP_FLOAT_Y, g_param_spec_int ("floaty", _("Y-Coordinate"), - _("Y coordinate for dock when floating"), + _("Y-Coordinate for dock when floating"), -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | GDL_DOCK_PARAM_EXPORT)); diff --git a/src/libgdl/gdl-icons.c b/src/libgdl/gdl-icons.c new file mode 100644 index 000000000..2af2a8a9a --- /dev/null +++ b/src/libgdl/gdl-icons.c @@ -0,0 +1,267 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* gdl-icons.c + * + * Copyright (C) 2000-2001 Dave Camp + * + * 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.1 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, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Dave Camp, Jeroen Zwartepoorte + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gdl-i18n.h" +#include "gdl-tools.h" +#include +#include +#include +#include "gdl-icons.h" + +enum { + PROP_BOGUS, + PROP_ICON_SIZE, +}; + +#define GDL_ICONS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GDL_TYPE_ICONS, GdlIconsPrivate)) + +typedef struct _GdlIconsPrivate GdlIconsPrivate; + +struct _GdlIconsPrivate { + int icon_size; + + GtkIconTheme *icon_theme; + GHashTable *icons; +}; + +GDL_CLASS_BOILERPLATE (GdlIcons, gdl_icons, GObject, G_TYPE_OBJECT); + +static void +gdl_icons_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_ICON_SIZE: + g_value_set_int (value, priv->icon_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gdl_icons_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_ICON_SIZE: + priv->icon_size = g_value_get_int (value); + g_hash_table_destroy (priv->icons); + priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) gdk_pixbuf_unref); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +theme_changed_cb (GtkIconTheme *theme, + gpointer user_data) +{ + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (user_data); + + g_hash_table_destroy (priv->icons); + priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) gdk_pixbuf_unref); +} + +static void +gdl_icons_dispose (GObject *object) +{ + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); + + if (priv->icon_theme) { + /* Don't do that - look a GTK+ docs */ + /* g_object_unref (priv->icon_theme); */ + priv->icon_theme = NULL; + } + + if (priv->icons) { + g_hash_table_destroy (priv->icons); + priv->icons = NULL; + } +} + +static void +gdl_icons_class_init (GdlIconsClass *klass) +{ + GObjectClass *object_class = (GObjectClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + object_class->dispose = gdl_icons_dispose; + object_class->get_property = gdl_icons_get_property; + object_class->set_property = gdl_icons_set_property; + + g_object_class_install_property (object_class, PROP_ICON_SIZE, + g_param_spec_int ("icon-size", + _("Icon size"), + _("Icon size"), + 12, 256, 24, + G_PARAM_READWRITE)); + + g_type_class_add_private (object_class, sizeof (GdlIconsPrivate)); +} + +static void +gdl_icons_instance_init (GdlIcons *icons) +{ + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (icons); + + priv->icon_theme = gtk_icon_theme_get_default (); + /* gtk_icon_theme_get_default() does not ref the returned object */ + /* but API docs state the you should NOT ref it */ + /* g_object_ref (priv->icon_theme);*/ + g_signal_connect_object (G_OBJECT (priv->icon_theme), "changed", + G_CALLBACK (theme_changed_cb), icons, 0); + priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) gdk_pixbuf_unref); +} + +GdlIcons * +gdl_icons_new (int icon_size) +{ + return GDL_ICONS (g_object_new (GDL_TYPE_ICONS, + "icon-size", icon_size, + NULL)); +} + +GdkPixbuf * +gdl_icons_get_folder_icon (GdlIcons *icons) +{ + g_return_val_if_fail (icons != NULL, NULL); + g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); + + return gdl_icons_get_mime_icon (icons, "application/directory-normal"); +} + +GdkPixbuf * +gdl_icons_get_uri_icon (GdlIcons *icons, + const char *uri) +{ + GnomeVFSFileInfo *info; + GdkPixbuf *pixbuf; + + g_return_val_if_fail (icons != NULL, NULL); + g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); + g_return_val_if_fail (uri != NULL, NULL); + + info = gnome_vfs_file_info_new (); + gnome_vfs_get_file_info (uri, info, + GNOME_VFS_FILE_INFO_FOLLOW_LINKS | + GNOME_VFS_FILE_INFO_GET_MIME_TYPE | + GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE); + if (info->mime_type) + pixbuf = gdl_icons_get_mime_icon (icons, info->mime_type); + else + pixbuf = gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); + gnome_vfs_file_info_unref (info); + + return pixbuf; +} + +GdkPixbuf * +gdl_icons_get_mime_icon (GdlIcons *icons, + const char *mime_type) +{ + GdkPixbuf *pixbuf; + char *icon_name; + + g_return_val_if_fail (icons != NULL, NULL); + g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); + g_return_val_if_fail (mime_type != NULL, NULL); + + GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (icons); + + pixbuf = g_hash_table_lookup (priv->icons, mime_type); + if (pixbuf != NULL) { + g_object_ref (G_OBJECT (pixbuf)); + return pixbuf; + } + + if (!strcmp (mime_type, "application/directory-normal")) { + icon_name = g_strdup ("gnome-fs-directory"); + } else { + icon_name = gnome_icon_lookup (priv->icon_theme, + NULL, + NULL, + NULL, + NULL, + mime_type, + GNOME_ICON_LOOKUP_FLAGS_NONE, + NULL); + } + + if (!icon_name) { + /* Return regular icon if one doesn't exist for mime type. */ + if (!strcmp (mime_type, "gnome-fs-regular")) + return NULL; + else + return gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); + } else { + if (!gtk_icon_theme_has_icon (priv->icon_theme, icon_name)) { + g_free (icon_name); + if (!strcmp (mime_type, "gnome-fs-regular")) + return NULL; + else + return gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); + } else { + pixbuf = gtk_icon_theme_load_icon (priv->icon_theme, + icon_name, + priv->icon_size, + 0, /* lookup flags */ + NULL); + g_free (icon_name); + + if (pixbuf == NULL) { + if (!strcmp (mime_type, "gnome-fs-regular")) + return NULL; + else + return gdl_icons_get_mime_icon (icons, + "gnome-fs-regular"); + } + } + } + + g_hash_table_insert (priv->icons, g_strdup (mime_type), pixbuf); + g_object_ref (pixbuf); + + return pixbuf; +} diff --git a/src/libgdl/gdl-icons.h b/src/libgdl/gdl-icons.h new file mode 100644 index 000000000..79f3bba85 --- /dev/null +++ b/src/libgdl/gdl-icons.h @@ -0,0 +1,61 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* gdl-icons.h + * + * Copyright (C) 2000-2001 JP Rosevear + * 2000 Dave Camp + * + * 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. + * + * Authors: JP Rosevear, Dave Camp, Jeroen Zwartepoorte + */ + +#ifndef _GDL_ICONS_H_ +#define _GDL_ICONS_H_ + +#include +#include + +G_BEGIN_DECLS + +#define GDL_TYPE_ICONS (gdl_icons_get_type ()) +#define GDL_ICONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_ICONS, GdlIcons)) +#define GDL_ICONS_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_ICONS, GdlIconsClass)) +#define GDL_IS_ICONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_ICONS)) +#define GDL_IS_ICONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_ICONS)) + +typedef struct _GdlIcons GdlIcons; +typedef struct _GdlIconsClass GdlIconsClass; + +struct _GdlIcons { + GObject parent; +}; + +struct _GdlIconsClass { + GObjectClass parent_class; +}; + +GType gdl_icons_get_type (void); +GdlIcons *gdl_icons_new (int icon_size); + +GdkPixbuf *gdl_icons_get_folder_icon (GdlIcons *icons); +GdkPixbuf *gdl_icons_get_uri_icon (GdlIcons *icons, + const char *uri); +GdkPixbuf *gdl_icons_get_mime_icon (GdlIcons *icons, + const char *mime_type); + +G_END_DECLS + +#endif /* _GDL_ICONS_H_ */ diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c index eccd66ce2..24ec72126 100644 --- a/src/libgdl/gdl-switcher.c +++ b/src/libgdl/gdl-switcher.c @@ -55,7 +55,7 @@ static void gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *stock_id, const GdkPixbuf *pixbuf_icon, gint switcher_id); -static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id); +/* static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id); */ static void gdl_switcher_select_page (GdlSwitcher *switcher, gint switcher_id); static void gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id); static void gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show); @@ -514,7 +514,7 @@ gdl_switcher_expose (GtkWidget *widget, GdkEventExpose *event) } } return GDL_CALL_PARENT_WITH_DEFAULT (GTK_WIDGET_CLASS, expose_event, - (widget, event), FALSE); + (widget, event), FALSE); } static void @@ -678,11 +678,9 @@ gdl_switcher_select_page (GdlSwitcher *switcher, gint id) static void gdl_switcher_class_init (GdlSwitcherClass *klass) { - GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); - (void)notebook_class; container_class->forall = gdl_switcher_forall; container_class->remove = gdl_switcher_remove; @@ -763,11 +761,11 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, gtk_widget_show (hbox); if (stock_id) { - icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON); + icon_widget = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); } else if (pixbuf_icon) { icon_widget = gtk_image_new_from_pixbuf (pixbuf_icon); } else { - icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_BUTTON); + icon_widget = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU); } gtk_widget_show (icon_widget); @@ -810,6 +808,7 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, gtk_widget_queue_resize (GTK_WIDGET (switcher)); } +#if 0 static void gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id) { @@ -827,6 +826,7 @@ gdl_switcher_remove_button (GdlSwitcher *switcher, gint switcher_id) } gtk_widget_queue_resize (GTK_WIDGET (switcher)); } +#endif static void gdl_switcher_select_button (GdlSwitcher *switcher, gint switcher_id) diff --git a/src/libgdl/gdl.h b/src/libgdl/gdl.h new file mode 100644 index 000000000..e47dc310d --- /dev/null +++ b/src/libgdl/gdl.h @@ -0,0 +1,39 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * This file is part of the GNOME Devtools Libraries. + * + * Copyright (C) 1999-2000 Dave Camp + * + * 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. + */ + +#ifndef __GDL_H__ +#define __GDL_H__ + +#include "libgdl/gdl-tools.h" +#include "libgdl/gdl-dock-object.h" +#include "libgdl/gdl-dock-master.h" +#include "libgdl/gdl-dock.h" +#include "libgdl/gdl-dock-item.h" +#include "libgdl/gdl-dock-layout.h" +#include "libgdl/gdl-dock-paned.h" +#include "libgdl/gdl-dock-notebook.h" +#include "libgdl/gdl-dock-tablabel.h" +#include "libgdl/gdl-dock-bar.h" +#include "libgdl/gdl-combo-button.h" +#include "libgdl/gdl-switcher.h" + +#endif diff --git a/src/libgdl/libgdl.h b/src/libgdl/libgdl.h deleted file mode 100644 index 5ee84e1ae..000000000 --- a/src/libgdl/libgdl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 1999-2000 Dave Camp - * - * 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. - */ - -#ifndef __GDL_H__ -#define __GDL_H__ - -#include "libgdl/gdl-tools.h" -#include "libgdl/gdl-dock-object.h" -#include "libgdl/gdl-dock-master.h" -#include "libgdl/gdl-dock.h" -#include "libgdl/gdl-dock-item.h" -#include "libgdl/gdl-dock-paned.h" -#include "libgdl/gdl-dock-notebook.h" -#include "libgdl/gdl-dock-tablabel.h" -#include "libgdl/gdl-dock-bar.h" -#include "libgdl/gdl-switcher.h" - -#endif diff --git a/src/libgdl/libgdltypebuiltins.h b/src/libgdl/libgdltypebuiltins.h index 8be5decb1..f5e6ea17b 100644 --- a/src/libgdl/libgdltypebuiltins.h +++ b/src/libgdl/libgdltypebuiltins.h @@ -4,7 +4,7 @@ #ifndef __LIBGDLTYPEBUILTINS_H__ #define __LIBGDLTYPEBUILTINS_H__ 1 -#include "libgdl/libgdl.h" +#include "libgdl/gdl.h" G_BEGIN_DECLS diff --git a/src/libgdl/test-combo-button.c b/src/libgdl/test-combo-button.c new file mode 100644 index 000000000..35ce3fff3 --- /dev/null +++ b/src/libgdl/test-combo-button.c @@ -0,0 +1,111 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* test-combo-button.c + * + * Copyright (C) 2003 Jeroen Zwartepoorte + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * 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. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include "gdl-combo-button.h" + +static void +combo_button_activate_default_cb (GdlComboButton *combo, + gpointer data) +{ + g_message ("combo_button_activate_default_cb"); +} + +int +main (int argc, char **argv) +{ + GtkWidget *window, *hbox, *combo, *menu, *menuitem; + GdkPixbuf *icon; + + gtk_init (&argc, &argv); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (G_OBJECT (window), "delete_event", + G_CALLBACK (gtk_main_quit), NULL); + gtk_window_set_title (GTK_WINDOW (window), "Combo button test"); + gtk_window_set_resizable (GTK_WINDOW (window), FALSE); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_container_add (GTK_CONTAINER (window), hbox); + + combo = gtk_button_new_from_stock (GTK_STOCK_OPEN); + gtk_button_set_relief (GTK_BUTTON (combo), GTK_RELIEF_NONE); + gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); + + menu = gtk_menu_new (); + menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_OPEN, NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); + menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE, NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); + gtk_widget_show_all (menu); + + combo = gdl_combo_button_new (); + gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Run"); + gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); + icon = gtk_widget_render_icon (combo, GTK_STOCK_EXECUTE, + GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); + gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); + + g_signal_connect (combo, "activate_default", + G_CALLBACK (combo_button_activate_default_cb), NULL); + + combo = gtk_button_new_from_stock (GTK_STOCK_SAVE); + gtk_button_set_relief (GTK_BUTTON (combo), GTK_RELIEF_NONE); + gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); + + menu = gtk_menu_new (); + menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_OPEN, NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); + menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE, NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); + gtk_widget_show_all (menu); + + combo = gdl_combo_button_new (); + gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Open"); + gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); + icon = gtk_widget_render_icon (combo, GTK_STOCK_OPEN, + GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); + gtk_widget_set_sensitive (combo, FALSE); + gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); + + g_signal_connect (combo, "activate_default", + G_CALLBACK (combo_button_activate_default_cb), NULL); + + menu = gtk_menu_new (); + combo = gdl_combo_button_new (); + gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Open"); + gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); + icon = gtk_widget_render_icon (combo, GTK_STOCK_OPEN, + GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); + gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); + + gtk_widget_show_all (window); + + gtk_main (); + + return 0; +} diff --git a/src/libgdl/test-dataview.c b/src/libgdl/test-dataview.c new file mode 100644 index 000000000..bc89cbd4f --- /dev/null +++ b/src/libgdl/test-dataview.c @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "gdl-data-view.h" +#include "gdl-data-model-test.h" + +int +main (int argc, char *argv[]) +{ + GtkWidget *win; + GtkWidget *view; + GdlDataModel *model; + GtkWidget *vbox; + + gtk_init (&argc, &argv); + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (win), 500, 200); + + vbox = gtk_vbox_new (FALSE, 5); + + view = gdl_data_view_new (); + + gtk_layout_set_hadjustment (GTK_LAYOUT (view), NULL); + gtk_layout_set_vadjustment (GTK_LAYOUT (view), NULL); + + + model = GDL_DATA_MODEL (gdl_data_model_test_new ()); + gdl_data_view_set_model (GDL_DATA_VIEW (view), + model); + + gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 0); + + gtk_container_add (GTK_CONTAINER (win), vbox); + + gtk_widget_show_all (win); + gtk_widget_grab_focus (GTK_WIDGET (view)); + + gtk_main (); + + return 0; +} diff --git a/src/libgdl/test-dock.c b/src/libgdl/test-dock.c new file mode 100644 index 000000000..1e9c80111 --- /dev/null +++ b/src/libgdl/test-dock.c @@ -0,0 +1,311 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include "gdl-tools.h" + +#include "gdl-dock.h" +#include "gdl-dock-item.h" +#include "gdl-dock-notebook.h" +#include "gdl-dock-layout.h" +#include "gdl-dock-placeholder.h" +#include "gdl-dock-bar.h" +#include "gdl-switcher.h" + +#include + +/* ---- end of debugging code */ + +static void +on_style_button_toggled (GtkRadioButton *button, GdlDock *dock) +{ + gboolean active; + GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock); + GdlSwitcherStyle style = + GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), + "__style_id")); + active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + if (active) { + g_object_set (master, "switcher-style", style, NULL); + } +} + +static GtkWidget * +create_style_button (GtkWidget *dock, GtkWidget *box, GtkWidget *group, + GdlSwitcherStyle style, const gchar *style_text) +{ + GdlSwitcherStyle current_style; + GtkWidget *button1; + GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock); + + g_object_get (master, "switcher-style", ¤t_style, NULL); + button1 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (group), + style_text); + gtk_widget_show (button1); + g_object_set_data (G_OBJECT (button1), "__style_id", + GINT_TO_POINTER (style)); + if (current_style == style) { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button1), TRUE); + } + g_signal_connect (button1, "toggled", + G_CALLBACK (on_style_button_toggled), + dock); + gtk_box_pack_start (GTK_BOX (box), button1, FALSE, FALSE, 0); + return button1; +} + +static GtkWidget * +create_styles_item (GtkWidget *dock) +{ + GtkWidget *vbox1; + GtkWidget *group; + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox1); + + group = create_style_button (dock, vbox1, NULL, + GDL_SWITCHER_STYLE_ICON, "Only icon"); + group = create_style_button (dock, vbox1, group, + GDL_SWITCHER_STYLE_TEXT, "Only text"); + group = create_style_button (dock, vbox1, group, + GDL_SWITCHER_STYLE_BOTH, + "Both icons and texts"); + group = create_style_button (dock, vbox1, group, + GDL_SWITCHER_STYLE_TOOLBAR, + "Desktop toolbar style"); + group = create_style_button (dock, vbox1, group, + GDL_SWITCHER_STYLE_TABS, + "Notebook tabs"); + return vbox1; +} + +static GtkWidget * +create_item (const gchar *button_title) +{ + GtkWidget *vbox1; + GtkWidget *button1; + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox1); + + button1 = gtk_button_new_with_label (button_title); + gtk_widget_show (button1); + gtk_box_pack_start (GTK_BOX (vbox1), button1, TRUE, TRUE, 0); + + return vbox1; +} + +/* creates a simple widget with a textbox inside */ +static GtkWidget * +create_text_item () +{ + GtkWidget *vbox1; + GtkWidget *scrolledwindow1; + GtkWidget *text; + + vbox1 = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox1); + + scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); + gtk_widget_show (scrolledwindow1); + gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), + GTK_SHADOW_ETCHED_IN); + text = gtk_text_view_new (); + g_object_set (text, "wrap-mode", GTK_WRAP_WORD, NULL); + gtk_widget_show (text); + gtk_container_add (GTK_CONTAINER (scrolledwindow1), text); + + return vbox1; +} + +static void +button_dump_cb (GtkWidget *button, gpointer data) +{ + /* Dump XML tree. */ + gdl_dock_layout_save_to_file (GDL_DOCK_LAYOUT (data), "layout.xml"); + g_spawn_command_line_async ("cat layout.xml", NULL); +} + +static void +run_layout_manager_cb (GtkWidget *w, gpointer data) +{ + GdlDockLayout *layout = GDL_DOCK_LAYOUT (data); + gdl_dock_layout_run_manager (layout); +} + +static void +save_layout_cb (GtkWidget *w, gpointer data) +{ + GdlDockLayout *layout = GDL_DOCK_LAYOUT (data); + GtkWidget *dialog, *hbox, *label, *entry; + gint response; + + dialog = gtk_dialog_new_with_buttons ("New Layout", + NULL, + GTK_DIALOG_MODAL | + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_OK, + GTK_RESPONSE_OK, + NULL); + + hbox = gtk_hbox_new (FALSE, 8); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new ("Name:"); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + + entry = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); + + gtk_widget_show_all (hbox); + response = gtk_dialog_run (GTK_DIALOG (dialog)); + + if (response == GTK_RESPONSE_OK) { + const gchar *name = gtk_entry_get_text (GTK_ENTRY (entry)); + gdl_dock_layout_save_layout (layout, name); + } + + gtk_widget_destroy (dialog); +} + +int +main (int argc, char **argv) +{ + GtkWidget *item1, *item2, *item3; + GtkWidget *items [4]; + GtkWidget *win, *table, *button, *box; + int i; + GdlDockLayout *layout; + GtkWidget *dock, *dockbar; + + gtk_init (&argc, &argv); + + /*gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);*/ + + /* window creation */ + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (win, "delete_event", + G_CALLBACK (gtk_main_quit), NULL); + gtk_window_set_title (GTK_WINDOW (win), "Docking widget test"); + gtk_window_set_default_size (GTK_WINDOW (win), 400, 400); + + /* table */ + table = gtk_vbox_new (FALSE, 5); + gtk_container_add (GTK_CONTAINER (win), table); + gtk_container_set_border_width (GTK_CONTAINER (table), 10); + + /* create the dock */ + dock = gdl_dock_new (); + + /* ... and the layout manager */ + layout = gdl_dock_layout_new (GDL_DOCK (dock)); + + /* create the dockbar */ + dockbar = gdl_dock_bar_new (GDL_DOCK (dock)); + gdl_dock_bar_set_style(GDL_DOCK_BAR(dockbar), GDL_DOCK_BAR_TEXT); + + box = gtk_hbox_new (FALSE, 5); + gtk_box_pack_start (GTK_BOX (table), box, TRUE, TRUE, 0); + + gtk_box_pack_start (GTK_BOX (box), dockbar, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (box), dock, TRUE, TRUE, 0); + + /* create the dock items */ + item1 = gdl_dock_item_new ("item1", "Item #1", GDL_DOCK_ITEM_BEH_LOCKED); + gtk_container_add (GTK_CONTAINER (item1), create_text_item ()); + gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item1), + GDL_DOCK_TOP); + gtk_widget_show (item1); + + item2 = gdl_dock_item_new_with_stock ("item2", "Item #2: Select the switcher style for notebooks", + GTK_STOCK_EXECUTE, + GDL_DOCK_ITEM_BEH_NORMAL); + g_object_set (item2, "resize", FALSE, NULL); + gtk_container_add (GTK_CONTAINER (item2), create_styles_item (dock)); + gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item2), + GDL_DOCK_RIGHT); + gtk_widget_show (item2); + + item3 = gdl_dock_item_new_with_stock ("item3", "Item #3 has accented characters (áéíóúñ)", + GTK_STOCK_CONVERT, + GDL_DOCK_ITEM_BEH_NORMAL | + GDL_DOCK_ITEM_BEH_CANT_CLOSE); + gtk_container_add (GTK_CONTAINER (item3), create_item ("Button 3")); + gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item3), + GDL_DOCK_BOTTOM); + gtk_widget_show (item3); + + items [0] = gdl_dock_item_new_with_stock ("Item #4", "Item #4", + GTK_STOCK_JUSTIFY_FILL, + GDL_DOCK_ITEM_BEH_NORMAL | + GDL_DOCK_ITEM_BEH_CANT_ICONIFY); + gtk_container_add (GTK_CONTAINER (items [0]), create_text_item ()); + gtk_widget_show (items [0]); + gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (items [0]), GDL_DOCK_BOTTOM); + for (i = 1; i < 3; i++) { + gchar name[10]; + + snprintf (name, sizeof (name), "Item #%d", i + 4); + items [i] = gdl_dock_item_new_with_stock (name, name, GTK_STOCK_NEW, + GDL_DOCK_ITEM_BEH_NORMAL); + gtk_container_add (GTK_CONTAINER (items [i]), create_text_item ()); + gtk_widget_show (items [i]); + + gdl_dock_object_dock (GDL_DOCK_OBJECT (items [0]), + GDL_DOCK_OBJECT (items [i]), + GDL_DOCK_CENTER, NULL); + }; + + /* tests: manually dock and move around some of the items */ + gdl_dock_item_dock_to (GDL_DOCK_ITEM (item3), GDL_DOCK_ITEM (item1), + GDL_DOCK_TOP, -1); + + gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), GDL_DOCK_ITEM (item3), + GDL_DOCK_RIGHT, -1); + + gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), GDL_DOCK_ITEM (item3), + GDL_DOCK_LEFT, -1); + + gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), NULL, + GDL_DOCK_FLOATING, -1); + + box = gtk_hbox_new (TRUE, 5); + gtk_box_pack_end (GTK_BOX (table), box, FALSE, FALSE, 0); + + button = gtk_button_new_from_stock (GTK_STOCK_SAVE); + g_signal_connect (button, "clicked", + G_CALLBACK (save_layout_cb), layout); + gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); + + button = gtk_button_new_with_label ("Layout Manager"); + g_signal_connect (button, "clicked", + G_CALLBACK (run_layout_manager_cb), layout); + gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); + + button = gtk_button_new_with_label ("Dump XML"); + g_signal_connect (button, "clicked", + G_CALLBACK (button_dump_cb), layout); + gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); + + gtk_widget_show_all (win); + + gdl_dock_placeholder_new ("ph1", GDL_DOCK_OBJECT (dock), GDL_DOCK_TOP, FALSE); + gdl_dock_placeholder_new ("ph2", GDL_DOCK_OBJECT (dock), GDL_DOCK_BOTTOM, FALSE); + gdl_dock_placeholder_new ("ph3", GDL_DOCK_OBJECT (dock), GDL_DOCK_LEFT, FALSE); + gdl_dock_placeholder_new ("ph4", GDL_DOCK_OBJECT (dock), GDL_DOCK_RIGHT, FALSE); + + gtk_main (); + + g_object_unref (layout); + + return 0; +} diff --git a/src/ui/dialog/dock-behavior.h b/src/ui/dialog/dock-behavior.h index b865af545..98c111719 100644 --- a/src/ui/dialog/dock-behavior.h +++ b/src/ui/dialog/dock-behavior.h @@ -21,7 +21,7 @@ #include "ui/widget/dock-item.h" -#include "libgdl/libgdl.h" +#include "libgdl/gdl.h" #include "behavior.h" diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h index 79d69d862..1780b7525 100644 --- a/src/ui/widget/dock-item.h +++ b/src/ui/widget/dock-item.h @@ -19,7 +19,7 @@ #include #include -#include "libgdl/libgdl.h" +#include "libgdl/gdl.h" namespace Inkscape { namespace UI { diff --git a/src/ui/widget/dock.h b/src/ui/widget/dock.h index 5836cf83f..bd5685348 100644 --- a/src/ui/widget/dock.h +++ b/src/ui/widget/dock.h @@ -20,7 +20,7 @@ #include "ui/widget/dock-item.h" -#include "libgdl/libgdl.h" +#include "libgdl/gdl.h" namespace Inkscape { namespace UI { -- cgit v1.2.3 From 076ea1e5cfd8f4c78638e71405a7dda8de7aa17f Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 15:48:49 +0100 Subject: Merge upstream GDL 0.7.9 changes (bzr r10431) --- src/libgdl/gdl-dock-item.c | 2 +- src/libgdl/gdl-tools.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c index db31ade30..c8151fe95 100644 --- a/src/libgdl/gdl-dock-item.c +++ b/src/libgdl/gdl-dock-item.c @@ -301,7 +301,7 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) g_object_class, PROP_RESIZE, g_param_spec_boolean ("resize", _("Resizable"), _("If set, the dock item can be resized when " - "docked in a panel"), + "docked in a GtkPanel widget"), TRUE, G_PARAM_READWRITE)); diff --git a/src/libgdl/gdl-tools.h b/src/libgdl/gdl-tools.h index 2cc68c035..4e515b23b 100644 --- a/src/libgdl/gdl-tools.h +++ b/src/libgdl/gdl-tools.h @@ -79,9 +79,10 @@ G_BEGIN_DECLS #endif /* DO_GDL_TRACE */ -/** +/* * Class boilerplate and base class call macros copied from * bonobo/bonobo-macros.h. Original copyright follows. + * * * Author: * Darin Adler -- cgit v1.2.3 From f733c171b830be2914f2473dcac2ed5787ad8317 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 15:58:25 +0100 Subject: Merge upstream GDL 0.7.10 changes (bzr r10432) --- src/libgdl/gdl-dock-item-grip.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c index 2101d9621..0c202812c 100644 --- a/src/libgdl/gdl-dock-item-grip.c +++ b/src/libgdl/gdl-dock-item-grip.c @@ -214,9 +214,11 @@ gdl_dock_item_grip_item_notify (GObject *master, ensure_title_and_icon_pixbuf (grip); } else if (strcmp (pspec->name, "long-name") == 0) { + if (grip->_priv->title_layout) { + g_object_unref (grip->_priv->title_layout); + grip->_priv->title_layout = NULL; + } g_free (grip->_priv->title); - g_object_unref (grip->_priv->title_layout); - grip->_priv->title_layout = NULL; grip->_priv->title = NULL; ensure_title_and_icon_pixbuf (grip); gtk_widget_queue_draw (GTK_WIDGET (grip)); -- cgit v1.2.3 From ec4f9f3344866d4a36d11cec8250289be6999f61 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 16:19:38 +0100 Subject: Merge upstream GDL 2.23.90 changes (bzr r10433) --- src/libgdl/gdl-data-frame.h | 10 +++++----- src/libgdl/gdl-data-view.h | 12 ++++++------ src/libgdl/gdl-dock-item-grip.c | 4 ++-- src/libgdl/gdl-dock-item.c | 2 +- src/libgdl/gdl-dock-layout.c | 4 ++-- src/libgdl/gdl-dock-layout.h | 10 +++++----- src/libgdl/gdl-switcher.c | 23 +++++++++++++++++++---- 7 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/libgdl/gdl-data-frame.h b/src/libgdl/gdl-data-frame.h index 740c38293..7daeb5b12 100644 --- a/src/libgdl/gdl-data-frame.h +++ b/src/libgdl/gdl-data-frame.h @@ -29,11 +29,11 @@ G_BEGIN_DECLS #define GDL_TYPE_DATA_FRAME (gdl_data_frame_get_type ()) -#define GDL_DATA_FRAME(obj) (GTK_CHECK_CAST ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrame)) -#define GDL_DATA_FRAME_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_DATA_VIEW_FRAM, GdlDataFrame)) -#define GDL_IS_DATA_FRAME(obj) (GTK_CHECK_TYPE ((obj), GDL_TYPE_DATA_FRAME)) -#define GDL_IS_DATA_FRAME_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_FRAME)) -#define GDL_DATA_FRAME_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrameClass)) +#define GDL_DATA_FRAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrame)) +#define GDL_DATA_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_DATA_VIEW_FRAM, GdlDataFrame)) +#define GDL_IS_DATA_FRAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_FRAME)) +#define GDL_IS_DATA_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_FRAME)) +#define GDL_DATA_FRAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrameClass)) typedef struct _GdlDataFrame GdlDataFrame; typedef struct _GdlDataFramePrivate GdlDataFramePrivate; diff --git a/src/libgdl/gdl-data-view.h b/src/libgdl/gdl-data-view.h index a29132074..3a5db02f4 100644 --- a/src/libgdl/gdl-data-view.h +++ b/src/libgdl/gdl-data-view.h @@ -29,11 +29,11 @@ G_BEGIN_DECLS #define GDL_TYPE_DATA_VIEW (gdl_data_view_get_type ()) -#define GDL_DATA_VIEW(obj) (GTK_CHECK_CAST ((obj), GDL_TYPE_DATA_VIEW, GdlDataView)) -#define GDL_DATA_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) -#define GDL_IS_DATA_VIEW(obj) (GTK_CHECK_TYPE ((obj), GDL_TYPE_DATA_VIEW)) -#define GDL_IS_DATA_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_VIEW)) -#define GDL_DATA_VIEW_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) +#define GDL_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_VIEW, GdlDataView)) +#define GDL_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) +#define GDL_IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_VIEW)) +#define GDL_IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_VIEW)) +#define GDL_DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) typedef struct _GdlDataView GdlDataView; typedef struct _GdlDataViewClass GdlDataViewClass; @@ -53,7 +53,7 @@ struct _GdlDataViewClass { GtkLayoutClass parent_class; }; -GtkType gdl_data_view_get_type (void); +GType gdl_data_view_get_type (void); GtkWidget *gdl_data_view_new (void); void gdl_data_view_set_model (GdlDataView *view, GdlDataModel *model); diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c index 0c202812c..91b88e782 100644 --- a/src/libgdl/gdl-dock-item-grip.c +++ b/src/libgdl/gdl-dock-item-grip.c @@ -386,9 +386,9 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) G_CALLBACK (gdl_dock_item_grip_iconify_clicked), grip); gtk_widget_set_tooltip_text (grip->_priv->iconify_button, - _("Iconify")); + _("Iconify this dock")); gtk_widget_set_tooltip_text (grip->_priv->close_button, - _("Close")); + _("Close this dock")); } static void diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c index c8151fe95..d2c36b18a 100644 --- a/src/libgdl/gdl-dock-item.c +++ b/src/libgdl/gdl-dock-item.c @@ -1460,7 +1460,7 @@ gdl_dock_item_dock (GdlDockObject *object, { /* Activate the page we just added */ GdlDockItem* notebook = GDL_DOCK_ITEM (gdl_dock_object_get_parent_object (requestor)); - gtk_notebook_set_page (GTK_NOTEBOOK (notebook->child), + gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook->child), gtk_notebook_page_num (GTK_NOTEBOOK (notebook->child), GTK_WIDGET (requestor))); } diff --git a/src/libgdl/gdl-dock-layout.c b/src/libgdl/gdl-dock-layout.c index c3b0a4dac..a0f0a3e3a 100644 --- a/src/libgdl/gdl-dock-layout.c +++ b/src/libgdl/gdl-dock-layout.c @@ -715,9 +715,9 @@ gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) /* connect signals */ glade_xml_signal_connect_data (gui, "on_load_button_clicked", - GTK_SIGNAL_FUNC (load_layout_cb), ui_data); + G_CALLBACK (load_layout_cb), ui_data); glade_xml_signal_connect_data (gui, "on_delete_button_clicked", - GTK_SIGNAL_FUNC (delete_layout_cb), ui_data); + G_CALLBACK (delete_layout_cb), ui_data); g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); diff --git a/src/libgdl/gdl-dock-layout.h b/src/libgdl/gdl-dock-layout.h index 2ce5d13b3..82dce5de8 100644 --- a/src/libgdl/gdl-dock-layout.h +++ b/src/libgdl/gdl-dock-layout.h @@ -31,11 +31,11 @@ G_BEGIN_DECLS /* standard macros */ #define GDL_TYPE_DOCK_LAYOUT (gdl_dock_layout_get_type ()) -#define GDL_DOCK_LAYOUT(object) (GTK_CHECK_CAST ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayout)) -#define GDL_DOCK_LAYOUT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) -#define GDL_IS_DOCK_LAYOUT(object) (GTK_CHECK_TYPE ((object), GDL_TYPE_DOCK_LAYOUT)) -#define GDL_IS_DOCK_LAYOUT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_LAYOUT)) -#define GDL_DOCK_LAYOUT_GET_CLASS(object) (GTK_CHECK_GET_CLASS ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) +#define GDL_DOCK_LAYOUT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayout)) +#define GDL_DOCK_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) +#define GDL_IS_DOCK_LAYOUT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDL_TYPE_DOCK_LAYOUT)) +#define GDL_IS_DOCK_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_LAYOUT)) +#define GDL_DOCK_LAYOUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) /* data types & structures */ typedef struct _GdlDockLayout GdlDockLayout; diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c index 24ec72126..c67b4464b 100644 --- a/src/libgdl/gdl-switcher.c +++ b/src/libgdl/gdl-switcher.c @@ -702,6 +702,15 @@ gdl_switcher_class_init (GdlSwitcherClass *klass) GDL_TYPE_SWITCHER_STYLE, GDL_SWITCHER_STYLE_BOTH, G_PARAM_READWRITE)); + + gtk_rc_parse_string ("style \"gdl-button-style\"\n" + "{\n" + "GtkWidget::focus-padding = 1\n" + "GtkWidget::focus-line-width = 1\n" + "xthickness = 0\n" + "ythickness = 0\n" + "}\n" + "widget \"*.gdl-button\" style \"gdl-button-style\""); } static void @@ -743,6 +752,7 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, const gchar *tooltips, const gchar *stock_id, const GdkPixbuf *pixbuf_icon, gint switcher_id) { + GtkWidget *event_box; GtkWidget *button_widget; GtkWidget *hbox; GtkWidget *icon_widget; @@ -750,6 +760,8 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, GtkWidget *arrow; button_widget = gtk_toggle_button_new (); + gtk_widget_set_name (button_widget, "gdl-button"); + gtk_button_set_relief (GTK_BUTTON(button_widget), GTK_RELIEF_HALF); if (switcher->priv->show) gtk_widget_show (button_widget); g_signal_connect (button_widget, "toggled", @@ -779,8 +791,11 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, } gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); gtk_widget_show (label_widget); - gtk_widget_set_tooltip_text (button_widget, tooltips); - + + + gtk_widget_set_tooltip_text (button_widget, + tooltips); + switch (INTERNAL_MODE (switcher)) { case GDL_SWITCHER_STYLE_TEXT: gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0); @@ -801,10 +816,10 @@ gdl_switcher_add_button (GdlSwitcher *switcher, const gchar *label, switcher->priv->buttons = g_slist_append (switcher->priv->buttons, button_new (button_widget, label_widget, - icon_widget, + icon_widget, arrow, hbox, switcher_id)); + gtk_widget_set_parent (button_widget, GTK_WIDGET (switcher)); - gtk_widget_queue_resize (GTK_WIDGET (switcher)); } -- cgit v1.2.3 From e7672f3910efca2b9be29d8f6362578cb16cf59e Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 19:44:28 +0100 Subject: Merge upstream GDL 2.24.0 changes (bzr r10434) --- src/libgdl/gdl-data-frame.c | 297 ------------------- src/libgdl/gdl-data-frame.h | 72 ----- src/libgdl/gdl-data-model-test.c | 240 ---------------- src/libgdl/gdl-data-model-test.h | 32 --- src/libgdl/gdl-data-model.c | 160 ----------- src/libgdl/gdl-data-model.h | 105 ------- src/libgdl/gdl-data-row.c | 604 --------------------------------------- src/libgdl/gdl-data-row.h | 90 ------ src/libgdl/gdl-data-view.c | 526 ---------------------------------- src/libgdl/gdl-data-view.h | 71 ----- src/libgdl/gdl-icons.c | 267 ----------------- src/libgdl/gdl-icons.h | 61 ---- src/libgdl/test-dataview.c | 43 --- 13 files changed, 2568 deletions(-) delete mode 100644 src/libgdl/gdl-data-frame.c delete mode 100644 src/libgdl/gdl-data-frame.h delete mode 100644 src/libgdl/gdl-data-model-test.c delete mode 100644 src/libgdl/gdl-data-model-test.h delete mode 100644 src/libgdl/gdl-data-model.c delete mode 100644 src/libgdl/gdl-data-model.h delete mode 100644 src/libgdl/gdl-data-row.c delete mode 100644 src/libgdl/gdl-data-row.h delete mode 100644 src/libgdl/gdl-data-view.c delete mode 100644 src/libgdl/gdl-data-view.h delete mode 100644 src/libgdl/gdl-icons.c delete mode 100644 src/libgdl/gdl-icons.h delete mode 100644 src/libgdl/test-dataview.c diff --git a/src/libgdl/gdl-data-frame.c b/src/libgdl/gdl-data-frame.c deleted file mode 100644 index d6fb19533..000000000 --- a/src/libgdl/gdl-data-frame.c +++ /dev/null @@ -1,297 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-tools.h" -#include - -#include "gdl-data-view.h" -#include "gdl-data-frame.h" -#include "gdl-data-model.h" -#include "gdl-data-row.h" - -struct _GdlDataFramePrivate { - GdkRectangle shadow_r; - GdkRectangle frame_r; - GdkRectangle titlebar_r; - GdkRectangle title_r; - GdkRectangle close_r; - GdkRectangle row_r; - - int shadow_offset; - int titlebar_height; - char *title; - - GdlDataRow *row; - - PangoLayout *layout; - - gboolean selected; -}; - -static void gdl_data_frame_class_init (GdlDataFrameClass *klass); -static void gdl_data_frame_instance_init (GdlDataFrame *obj); -static void gdl_data_frame_finalize (GObject *object); - -GDL_CLASS_BOILERPLATE (GdlDataFrame, gdl_data_frame, GObject, G_TYPE_OBJECT); - -#define PAD 2 -#define BORDER 1 - -#define CENTERY(r1, r2) { r1.y = ((r2.y + (r2.height / 2)) - (r1.height / 2)); } - -void -gdl_data_frame_layout (GdlDataFrame *frame) -{ - GdkPixbuf *close_pixbuf; - /* Sizes */ - if (frame->priv->row) { - gdl_data_row_get_size (frame->priv->row, - NULL, NULL, - &frame->priv->row_r.width, - &frame->priv->row_r.height); - } else { - frame->priv->row_r.height = frame->priv->row_r.width = 0; - } - - if (frame->priv->layout) { - pango_layout_get_pixel_size (frame->priv->layout, - &frame->priv->title_r.width, - &frame->priv->title_r.height); - } else { - frame->priv->title_r.width = frame->priv->title_r.height = 0; - } - - close_pixbuf = gdl_data_view_get_close_pixbuf (frame->view); - if (close_pixbuf) { - frame->priv->close_r.width = - gdk_pixbuf_get_width (close_pixbuf); - frame->priv->close_r.height = - gdk_pixbuf_get_width (close_pixbuf); - } else { - frame->priv->close_r.width = frame->priv->close_r.height = 0; - } - - frame->priv->titlebar_r.height = MAX (frame->priv->titlebar_height, - frame->priv->title_r.height); - frame->priv->titlebar_r.height = MAX (frame->priv->titlebar_r.height, - frame->priv->close_r.height); - - frame->priv->frame_r.width = 2 * BORDER + 3 * PAD + frame->priv->title_r.width + frame->priv->close_r.width; - frame->priv->frame_r.width = MAX (frame->priv->frame_r.width, - frame->priv->row_r.width + 2 * BORDER + 2 * PAD); - frame->priv->frame_r.height = frame->priv->row_r.height + frame->priv->titlebar_r.height + 2 * PAD + 2 * BORDER; - frame->priv->titlebar_r.width = frame->priv->frame_r.width - BORDER; - frame->priv->shadow_r.width = frame->priv->frame_r.width; - frame->priv->shadow_r.height = frame->priv->frame_r.height; - - /* Locations */ - frame->priv->frame_r.x = frame->area.x; - frame->priv->frame_r.y = frame->area.y; - - frame->priv->shadow_r.x = frame->priv->frame_r.x + frame->priv->shadow_offset; - frame->priv->shadow_r.y = frame->priv->frame_r.y + frame->priv->shadow_offset; - frame->priv->titlebar_r.x = frame->priv->frame_r.x + BORDER; - frame->priv->titlebar_r.y = frame->priv->frame_r.y + BORDER; - frame->priv->title_r.x = frame->priv->frame_r.x + BORDER + PAD; - CENTERY (frame->priv->title_r, frame->priv->titlebar_r); - frame->priv->close_r.x = (frame->priv->frame_r.x + frame->priv->frame_r.width) - (frame->priv->close_r.width + BORDER + PAD); - CENTERY (frame->priv->close_r, frame->priv->titlebar_r); - - if (frame->priv->row) { - frame->priv->row_r.x = frame->priv->frame_r.x + BORDER + PAD; - frame->priv->row_r.y = frame->priv->titlebar_r.y + frame->priv->titlebar_r.height + PAD; - gdl_data_row_layout (frame->priv->row, &frame->priv->row_r); - } else { - frame->priv->row_r.x = frame->priv->row_r.y = 0; - } - - frame->area.width = frame->priv->frame_r.width + frame->priv->shadow_offset; - frame->area.height = frame->priv->frame_r.height + frame->priv->shadow_offset; -} - -#if 0 /* not used */ -static void -change_layout (GdlDataFrame *frame) -{ - char *text = frame->priv->title ? frame->priv->title : "?"; - pango_layout_set_text (frame->priv->layout, text, strlen (text)); -} -#endif - -#define EXPLODE(r) (r).x, (r).y, (r).width, (r).height - -void -gdl_data_frame_draw (GdlDataFrame *frame, GdkDrawable *drawable, - GdkRectangle *expose_area) -{ - GdkRectangle inter; - guint8 state = - frame->priv->selected ? GTK_STATE_SELECTED : GTK_STATE_NORMAL; - - gdk_draw_rectangle (drawable, - GTK_WIDGET (frame->view)->style->dark_gc[state], - TRUE, - EXPLODE (frame->priv->shadow_r)); - gdk_draw_rectangle (drawable, - GTK_WIDGET (frame->view)->style->base_gc[GTK_STATE_NORMAL], - TRUE, - EXPLODE (frame->priv->frame_r)); - gdk_draw_rectangle (drawable, - GTK_WIDGET (frame->view)->style->black_gc, - FALSE, - EXPLODE (frame->priv->frame_r)); - gdk_draw_rectangle (drawable, - GTK_WIDGET (frame->view)->style->bg_gc[state], - TRUE, - EXPLODE (frame->priv->titlebar_r)); - gdk_draw_layout (drawable, - GTK_WIDGET (frame->view)->style->fg_gc[state], - frame->priv->title_r.x, frame->priv->title_r.y, - frame->priv->layout); - - if (gdk_rectangle_intersect (expose_area, &frame->priv->close_r, &inter)) { - GdkPixbuf *pixbuf = gdl_data_view_get_close_pixbuf (frame->view); - gdk_draw_pixbuf (drawable, NULL, pixbuf, - 0, 0, - inter.x - frame->priv->close_r.x, - inter.y - frame->priv->close_r.y, - gdk_pixbuf_get_width (pixbuf), - gdk_pixbuf_get_height (pixbuf), - GDK_RGB_DITHER_NORMAL, 0, 0); - } - - if (frame->priv->row) { - if (gdk_rectangle_intersect (expose_area, &frame->priv->row_r, - &inter)) { - gdl_data_row_render (frame->priv->row, drawable, - &inter, - frame->priv->selected ? GTK_CELL_RENDERER_SELECTED : 0); - } - } -} - -void -gdl_data_frame_class_init (GdlDataFrameClass *klass) -{ - GObjectClass *gobject_class = (GObjectClass *)klass; - - parent_class = g_type_class_peek_parent (klass); - - gobject_class->finalize = gdl_data_frame_finalize; -} - -void -gdl_data_frame_instance_init (GdlDataFrame *frame) -{ - frame->priv = g_new0 (GdlDataFramePrivate, 1); - frame->area.x = frame->area.y = 0; - frame->priv->shadow_offset = 3; - frame->priv->titlebar_height = 20; - - frame->area.height = frame->area.width = 100; -} - -void -gdl_data_frame_finalize (GObject *object) -{ - GdlDataFrame *frame = GDL_DATA_FRAME (object); - - if (frame->priv) { - g_free (frame->priv->title); - g_object_unref (frame->priv->layout); - g_object_unref (frame->priv->row); - - g_free (frame->priv); - frame->priv = NULL; - } - GDL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); -} - -void -gdl_data_frame_set_selected (GdlDataFrame *frame, - gboolean val) -{ - frame->priv->selected = val; - - gdk_window_invalidate_rect (GTK_LAYOUT (frame->view)->bin_window, - &frame->priv->frame_r, - TRUE); -} - -gboolean -gdl_data_frame_button_press (GdlDataFrame *frame, - GdkEventButton *event) -{ - return FALSE; -} - -void -gdl_data_frame_set_position (GdlDataFrame *frame, - int x, - int y) -{ - frame->area.x = x; - frame->area.y = y; - - gdl_data_frame_layout (frame); -} - -static void -setup_layout (GdlDataFrame *frame) -{ - PangoFontDescription *font_desc = - pango_font_description_copy (GTK_WIDGET (frame->view)->style->font_desc); - - pango_font_description_set_weight (font_desc, - PANGO_WEIGHT_BOLD); - - frame->priv->layout = gtk_widget_create_pango_layout (GTK_WIDGET (frame->view), - frame->priv->title ? frame->priv->title : "?"); - pango_layout_set_font_description (frame->priv->layout, - font_desc); - pango_font_description_free (font_desc); -} - - -GdlDataFrame * -gdl_data_frame_new (GdlDataView *view, - GdlDataRow *row) -{ - GdlDataFrame *frame; - frame = GDL_DATA_FRAME (g_object_new (GDL_TYPE_DATA_FRAME, NULL)); - - frame->view = view; - - frame->priv->row = row; - frame->priv->title = g_strdup (gdl_data_row_get_title (row)); - - setup_layout (frame); - - gdl_data_frame_layout (frame); - - return frame; -} diff --git a/src/libgdl/gdl-data-frame.h b/src/libgdl/gdl-data-frame.h deleted file mode 100644 index 7daeb5b12..000000000 --- a/src/libgdl/gdl-data-frame.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifndef GDL_DATA_FRAME_H -#define GDL_DATA_FRAME_H - -#include -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_DATA_FRAME (gdl_data_frame_get_type ()) -#define GDL_DATA_FRAME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrame)) -#define GDL_DATA_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_DATA_VIEW_FRAM, GdlDataFrame)) -#define GDL_IS_DATA_FRAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_FRAME)) -#define GDL_IS_DATA_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_FRAME)) -#define GDL_DATA_FRAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DATA_FRAME, GdlDataFrameClass)) - -typedef struct _GdlDataFrame GdlDataFrame; -typedef struct _GdlDataFramePrivate GdlDataFramePrivate; -typedef struct _GdlDataFrameClass GdlDataFrameClass; - -struct _GdlDataFrame { - GObject parent; - - GdlDataView *view; - GdkRectangle area; - - GdlDataFramePrivate *priv; -}; - -struct _GdlDataFrameClass { - GObjectClass parent_class; -}; - -GType gdl_data_frame_get_type (void); -GdlDataFrame *gdl_data_frame_new (GdlDataView *view, - GdlDataRow *row); -void gdl_data_frame_layout (GdlDataFrame *frame); -void gdl_data_frame_draw (GdlDataFrame *item, - GdkDrawable *drawable, - GdkRectangle *expose_area); -void gdl_data_frame_set_selected (GdlDataFrame *frame, - gboolean val); -gboolean gdl_data_frame_button_press (GdlDataFrame *frame, - GdkEventButton *event); -void gdl_data_frame_set_position (GdlDataFrame *frame, - int x, - int y); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-data-model-test.c b/src/libgdl/gdl-data-model-test.c deleted file mode 100644 index ec6ed4d50..000000000 --- a/src/libgdl/gdl-data-model-test.c +++ /dev/null @@ -1,240 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" - -#include "gdl-data-model-test.h" -#include "gdl-data-model.h" - -#include -#include -#include - -GObjectClass *parent_class; - -typedef struct _DataItem { - char *name; - char *value; - char *path; - struct _DataItem *children; -} DataItem; - -DataItem data1[] = { - { "foo1", "foo1", "0:0", NULL}, - { "bar1", "bar1", "0:1", NULL }, - { "baz1", "baz1", "0:2", NULL }, - { NULL, NULL, NULL, NULL } - -}; -DataItem data2[] = { - { "foo2", "foo2", "1:0", NULL }, - { "bar2", "bar2", "1:1", NULL }, - { "baz2", "baz2", "1:2", NULL }, - { NULL, NULL, NULL, NULL } - -}; - -DataItem data5[] = { - { "1", "1", "2:2:1:0", NULL }, - { "2", "2", "2:2:1:1", NULL }, - { "3", "3", "2:2:1:2", NULL }, - { "4", "4", "2:2:1:3", NULL }, - { "5", "5", "2:2:1:4", NULL }, - { "6", "6", "2:2:1:5", NULL }, - { NULL, NULL, NULL, NULL } - -}; -DataItem data4[] = { - { "foo4", "foo4", "2:2:0", NULL }, - { "bar4", "[...]", "2:2:1", data5 }, - { "baz4", "baz4", "2:2:2", NULL }, - { NULL, NULL, NULL, NULL } - -}; -DataItem data3[] = { - { "foo foo", "foo3", "2:0", NULL }, - { "bar3", "1", "2:1", NULL }, - { "baz3", "{...}", "2:2", data4 }, - { NULL, NULL, NULL, NULL } - -}; - -DataItem root[] = { - { "test-data", "value1", "0", NULL } , - { "test-data2", "value2", "1", NULL } , - { "test-data3", "{...}", "2", data3 } , - { NULL, NULL, NULL } -}; - -static gboolean -get_iter (GdlDataModel *dm, GdlDataIter *iter, GtkTreePath *path) -{ - int *i = gtk_tree_path_get_indices (path); - int n = gtk_tree_path_get_depth (path); - DataItem *item; - - g_assert (i); - item = &root[*i++]; - - while (--n) { - item = &item->children[*i++]; - } - - iter->data1 = item; - - return TRUE; -} - -static GtkTreePath * -get_path (GdlDataModel *dm, GdlDataIter *iter) -{ - DataItem *item = iter->data1; - return gtk_tree_path_new_from_string (item->path); -} - -static void -get_name (GdlDataModel *dm, GdlDataIter *iter, char **name) -{ - DataItem *item = iter->data1; - *name = item->name; -} - -static void -get_value (GdlDataModel *dm, GdlDataIter *iter, GValue *value) -{ - DataItem *item = iter->data1; - if (strcmp (item->name, "bar3")) { - g_value_init (value, G_TYPE_STRING); - g_value_set_string (value, item->value); - } else { - g_value_init (value, G_TYPE_BOOLEAN); - g_value_set_boolean (value, !strcmp (item->value, "1")); - } -} - -static void -get_renderer (GdlDataModel *dm, GdlDataIter *iter, - GtkCellRenderer **renderer, char **field, - gboolean *is_editable) -{ - DataItem *item = iter->data1; - if (!strcmp (item->name, "bar3")) { - *renderer = g_object_new (gtk_cell_renderer_toggle_get_type (), - "activatable", TRUE, NULL); - *field = "active"; - } else { - *renderer = g_object_new (gtk_cell_renderer_text_get_type (), - "editable", TRUE, NULL); - *field = "text"; - } - *is_editable = (item->children == NULL); -} - -static gboolean -iter_next (GdlDataModel *dm, GdlDataIter *iter) -{ - DataItem *item = iter->data1; - item++; - if (item->name) { - iter->data1 = item; - return TRUE; - } else { - return FALSE; - } -} - -static gboolean -iter_children (GdlDataModel *dm, GdlDataIter *iter, GdlDataIter *parent) -{ - DataItem *item = parent->data1; - - item = &item->children[0]; - if (item) { - iter->data1 = item; - return TRUE; - } else { - return FALSE; - } -} - -static gboolean -iter_has_child (GdlDataModel *dm, GdlDataIter *iter) -{ - DataItem *item = iter->data1; - if (item->children) { - return TRUE; - } else { - return FALSE; - } -} - - -static void -gdl_data_model_test_instance_init (GdlDataModelTest *model) -{ -} - -static void -gdl_data_model_test_finalize (GObject *object) -{ - (*parent_class->finalize) (object); -} - -static void -gdl_data_model_test_class_init (GdlDataModelTestClass *klass) -{ - GObjectClass *object_class; - parent_class = g_type_class_peek_parent (klass); - object_class = (GObjectClass *)klass; - object_class->finalize = gdl_data_model_test_finalize; -} - -static void -gdl_data_model_test_data_model_init (GdlDataModelIface *iface) -{ - iface->get_iter = get_iter; - iface->get_path = get_path; - iface->get_name = get_name; - iface->get_value = get_value; - iface->get_renderer = get_renderer; - iface->iter_next = iter_next; - iface->iter_children = iter_children; - iface->iter_has_child = iter_has_child; -} - -GType -gdl_data_model_test_get_type (void) -{ - static GType type = 0; - - if (!type) { - static const GTypeInfo data_model_test_info = { - sizeof (GdlDataModelTestClass), - NULL, NULL, - (GClassInitFunc) gdl_data_model_test_class_init, - NULL, NULL, - sizeof (GdlDataModelTest), 0, - (GInstanceInitFunc) gdl_data_model_test_instance_init - }; - - static const GInterfaceInfo data_model_info = { - (GInterfaceInitFunc) gdl_data_model_test_data_model_init, - NULL, NULL - }; - - type = g_type_register_static (G_TYPE_OBJECT, - "GdlDataModelTest", - &data_model_test_info, 0); - g_type_add_interface_static (type, - GDL_TYPE_DATA_MODEL, - &data_model_info); - } - return type; -} - -GdlDataModelTest * -gdl_data_model_test_new (void) -{ - return GDL_DATA_MODEL_TEST (g_object_new (gdl_data_model_test_get_type (), NULL)); -} diff --git a/src/libgdl/gdl-data-model-test.h b/src/libgdl/gdl-data-model-test.h deleted file mode 100644 index c8add8daf..000000000 --- a/src/libgdl/gdl-data-model-test.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef GDL_DATA_MODEL_TEST_H -#define GDL_DATA_MODEL_TEST_H - -#include -#include "gdl-data-model.h" - -G_BEGIN_DECLS - -#define GDL_TYPE_DATA_MODEL_TEST (gdl_data_model_test_get_type ()) -#define GDL_DATA_MODEL_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_MODEL_TEST, GdlDataModelTest)) -#define GDL_IS_DATA_MODEL_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_MODEL_TEST)) - - -typedef struct _GdlDataModelTest GdlDataModelTest; -typedef struct _GdlDataModelTestClass GdlDataModelTestClass; - -struct _GdlDataModelTest { - GObject parent; - - int stamp; -}; - -struct _GdlDataModelTestClass { - GObjectClass parent_class; -}; - -GType gdl_data_model_test_get_type (void); -GdlDataModelTest *gdl_data_model_test_new (void); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-data-model.c b/src/libgdl/gdl-data-model.c deleted file mode 100644 index 69fbb93d5..000000000 --- a/src/libgdl/gdl-data-model.c +++ /dev/null @@ -1,160 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-data-model.h" - -gboolean -gdl_data_model_get_iter (GdlDataModel *dm, - GdlDataIter *iter, - GtkTreePath *path) -{ - g_return_val_if_fail (dm != NULL, FALSE); - g_return_val_if_fail (iter != NULL, FALSE); - g_return_val_if_fail (path != NULL, FALSE); - g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_iter != NULL, - FALSE); - - return (*GDL_DATA_MODEL_GET_IFACE (dm)->get_iter) (dm, iter, path); -} - -GtkTreePath * -gdl_data_model_get_path (GdlDataModel *dm, - GdlDataIter *iter) -{ - g_return_val_if_fail (dm != NULL, NULL); - g_return_val_if_fail (iter != NULL, NULL); - g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_path != NULL, - NULL); - - return (*GDL_DATA_MODEL_GET_IFACE (dm)->get_path) (dm, iter); -} - -void -gdl_data_model_get_name (GdlDataModel *dm, - GdlDataIter *iter, - char **name) -{ - g_return_if_fail (dm != NULL); - g_return_if_fail (iter != NULL); - g_return_if_fail (name != NULL); - g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_name != NULL); - - (*GDL_DATA_MODEL_GET_IFACE (dm)->get_name) (dm, iter, name); -} - -void -gdl_data_model_get_value (GdlDataModel *dm, - GdlDataIter *iter, - GValue *value) -{ - g_return_if_fail (dm != NULL); - g_return_if_fail (iter != NULL); - g_return_if_fail (value != NULL); - g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_value != NULL); - - (*GDL_DATA_MODEL_GET_IFACE (dm)->get_value) (dm, iter, value); -} - -void -gdl_data_model_get_renderer (GdlDataModel *dm, - GdlDataIter *iter, - GtkCellRenderer **renderer, - char **field, - gboolean *is_editable) -{ - g_return_if_fail (dm != NULL); - g_return_if_fail (iter != NULL); - g_return_if_fail (renderer != NULL); - g_return_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->get_renderer != NULL); - - (*GDL_DATA_MODEL_GET_IFACE (dm)->get_renderer) (dm, iter, - renderer, field, - is_editable); -} - -gboolean -gdl_data_model_iter_next (GdlDataModel *dm, - GdlDataIter *iter) -{ - g_return_val_if_fail (dm != NULL, FALSE); - g_return_val_if_fail (iter != NULL, FALSE); - g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_next != NULL, FALSE); - - return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_next) (dm, iter); -} - -gboolean -gdl_data_model_iter_children (GdlDataModel *dm, - GdlDataIter *iter, - GdlDataIter *parent) -{ - g_return_val_if_fail (dm != NULL, FALSE); - g_return_val_if_fail (iter != NULL, FALSE); - g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_children != NULL, FALSE); - - return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_children) (dm, iter, parent); -} - -gboolean -gdl_data_model_iter_has_child (GdlDataModel *dm, - GdlDataIter *iter) -{ - g_return_val_if_fail (dm != NULL, FALSE); - g_return_val_if_fail (iter != NULL, FALSE); - g_return_val_if_fail (GDL_DATA_MODEL_GET_IFACE (dm)->iter_has_child != NULL, FALSE); - - return (*GDL_DATA_MODEL_GET_IFACE (dm)->iter_has_child) (dm, iter); -} - -static void -gdl_data_model_base_init (gpointer g_class) -{ - static gboolean initialized = FALSE; - - if (!initialized) { - } -} - -GType -gdl_data_model_get_type (void) -{ - static GType type = 0; - - if (!type) { - static const GTypeInfo info = { - sizeof (GdlDataModelIface), - gdl_data_model_base_init, - NULL, NULL, NULL, NULL, 0, 0, NULL - }; - - type = g_type_register_static (G_TYPE_INTERFACE, - "GdlDataModel", - &info, 0); - g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); - } - - return type; -} diff --git a/src/libgdl/gdl-data-model.h b/src/libgdl/gdl-data-model.h deleted file mode 100644 index 521a65d0c..000000000 --- a/src/libgdl/gdl-data-model.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifndef GDL_DATA_MODEL_H -#define GDL_DATA_MODEL_H - -#include -#include - -/* Using GtkTreePath to save time */ -#include -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_DATA_MODEL (gdl_data_model_get_type ()) -#define GDL_DATA_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_MODEL, GdlDataModel)) -#define GDL_IS_DATA_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_MODEL)) -#define GDL_DATA_MODEL_GET_IFACE(obj) ((GdlDataModelIface *)g_type_interface_peek (((GTypeInstance *)GDL_DATA_MODEL (obj))->g_class, GDL_TYPE_DATA_MODEL)) - -typedef struct _GdlDataModel GdlDataModel; -typedef struct _GdlDataIter GdlDataIter; -typedef struct _GdlDataModelIface GdlDataModelIface; - -struct _GdlDataIter { - int stamp; - - gpointer data1; - gpointer data2; - gpointer data3; -}; - -struct _GdlDataModelIface { - GTypeInterface g_iface; - - /* Signals */ - void (*path_changed) (GdlDataModel *dm, GtkTreePath *path); - void (*path_inserted) (GdlDataModel *dm, GtkTreePath *path); - void (*path_deleted) (GdlDataModel *dm, GtkTreePath *path); - - /* Virtual Table */ - gboolean (*get_iter) (GdlDataModel *dm, GdlDataIter *iter, - GtkTreePath *path); - GtkTreePath* (*get_path) (GdlDataModel *dm, GdlDataIter *iter); - - void (*get_name) (GdlDataModel *dm, GdlDataIter *iter, - char **name); - void (*get_value) (GdlDataModel *dm, GdlDataIter *iter, - GValue *value); - void (*get_renderer) (GdlDataModel *dm, GdlDataIter *iter, - GtkCellRenderer **renderer, char **field, - gboolean *is_editable); - gboolean (*iter_next) (GdlDataModel *dm, GdlDataIter *iter); - gboolean (*iter_children) (GdlDataModel *dm, GdlDataIter *iter, - GdlDataIter *parent); - gboolean (*iter_has_child) (GdlDataModel *dm, GdlDataIter *iter); -}; - -GType gdl_data_model_get_type (void); -gboolean gdl_data_model_get_iter (GdlDataModel *dm, - GdlDataIter *iter, - GtkTreePath *path); -GtkTreePath *gdl_data_model_get_path (GdlDataModel *dm, - GdlDataIter *iter); -void gdl_data_model_get_name (GdlDataModel *dm, - GdlDataIter *iter, - char **name); -void gdl_data_model_get_value (GdlDataModel *dm, - GdlDataIter *iter, - GValue *value); -void gdl_data_model_get_renderer (GdlDataModel *dm, - GdlDataIter *iter, - GtkCellRenderer **renderer, - char **field, - gboolean *is_editable); -gboolean gdl_data_model_iter_next (GdlDataModel *dm, - GdlDataIter *iter); -gboolean gdl_data_model_iter_children (GdlDataModel *dm, - GdlDataIter *iter, - GdlDataIter *children); -gboolean gdl_data_model_iter_has_child (GdlDataModel *dm, - GdlDataIter *iter); - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-data-row.c b/src/libgdl/gdl-data-row.c deleted file mode 100644 index 666c658fe..000000000 --- a/src/libgdl/gdl-data-row.c +++ /dev/null @@ -1,604 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-tools.h" -#include "gdl-data-row.h" -#include "gdl-data-model.h" - -#include -#include - -struct _GdlDataRowPrivate { - GdlDataModel *model; - GtkTreePath *path; - GdlDataView *view; - - char *name; - - /* area_r - * +- title_r - * | +- name_r - * | +- sep_r - * +- data_r - * +- expand_r - * +- cell_r - */ - - GdkRectangle area_r; - - GdkRectangle title_r; - GdkRectangle name_r; - GdkRectangle sep_r; - - GdkRectangle data_r; - GdkRectangle expand_r; - GdkRectangle cell_r; - - gboolean multi; - GtkCellRenderer *cell; - GList *subrows; - - char *renderer_field; - - gboolean expanded; - gboolean focused; - gboolean editable; - - int split; - int child_split; - gboolean selected; -}; - -GDL_CLASS_BOILERPLATE (GdlDataRow, gdl_data_row, GObject, G_TYPE_OBJECT); - - -static void -expand (GdlDataRow *row) -{ - GdlDataIter iter; - gboolean valid; - - if (gdl_data_model_get_iter (row->priv->model, &iter, row->priv->path)) { - valid = gdl_data_model_iter_children (row->priv->model, - &iter, &iter); - while (valid) { - GdlDataRow *new_row; - GtkTreePath *path; - - path = gdl_data_model_get_path (row->priv->model, - &iter); - new_row = gdl_data_row_new (row->priv->view, - path); - row->priv->subrows = - g_list_prepend (row->priv->subrows, new_row); - gtk_tree_path_free (path); - - valid = gdl_data_model_iter_next (row->priv->model, - &iter); - } - row->priv->subrows = g_list_reverse (row->priv->subrows); - - row->priv->expanded = TRUE; - gdl_data_view_layout (GDL_DATA_VIEW (row->priv->view)); - gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); - } -} - -static void -contract (GdlDataRow *row) -{ - GList *l; - for (l = row->priv->subrows; l != NULL; l = l->next) { - g_object_unref (G_OBJECT (l->data)); - } - g_list_free (row->priv->subrows); - row->priv->subrows = NULL; - - row->priv->expanded = FALSE; - gdl_data_view_layout (GDL_DATA_VIEW (row->priv->view)); - gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); -} - -static void -load_path (GdlDataRow *row) -{ - GdlDataIter iter; - - /* Make sure the path has been unloaded */ - g_return_if_fail (row->priv->name == NULL); - g_return_if_fail (row->priv->cell == NULL); - - if (gdl_data_model_get_iter (row->priv->model, - &iter, row->priv->path)) { - GValue val = { 0, }; - char *str; - - gdl_data_model_get_name (row->priv->model, &iter, - &str); - row->priv->name = g_strdup (str); - - if (gdl_data_model_iter_has_child (row->priv->model, &iter)) { - row->priv->multi = TRUE; - } - - gdl_data_model_get_renderer (row->priv->model, &iter, - &row->priv->cell, - &str, - &row->priv->editable); - g_object_ref (GTK_OBJECT (row->priv->cell)); - gtk_object_sink (GTK_OBJECT (row->priv->cell)); - - row->priv->renderer_field = g_strdup (str); - gdl_data_model_get_value (row->priv->model, &iter, &val); - - g_object_set_property (G_OBJECT (row->priv->cell), - row->priv->renderer_field, - &val); - g_value_unset (&val); - } -} - -static void -unload_path (GdlDataRow *row) -{ - if (row->priv->renderer_field) { - g_free (row->priv->renderer_field); - row->priv->renderer_field = NULL; - } - - if (row->priv->name) { - g_free (row->priv->name); - row->priv->name = NULL; - } - - if (row->priv->cell) { - g_object_unref (row->priv->cell); - row->priv->cell = NULL; - } - - if (row->priv->subrows) { - GList *l; - for (l = row->priv->subrows; l != NULL; l = l->next) { - g_object_unref (G_OBJECT (l->data)); - } - g_list_free (row->priv->subrows); - row->priv->subrows = NULL; - } -} - -static void -gdl_data_row_instance_init (GdlDataRow *row) -{ - row->priv = g_new0 (GdlDataRowPrivate, 1); -} - -static void -gdl_data_row_finalize (GObject *object) -{ - GdlDataRow *row = GDL_DATA_ROW (object); - if (row->priv) { - unload_path (row); - - if (row->priv->path) { - gtk_tree_path_free (row->priv->path); - row->priv->path = NULL; - } - - - g_object_unref (row->priv->model); - - g_free (row->priv); - row->priv = NULL; - } -} - -static void -gdl_data_row_class_init (GdlDataRowClass *klass) -{ - GObjectClass *gobject_class = (GObjectClass*) klass; - gobject_class->finalize = gdl_data_row_finalize; - - parent_class = g_type_class_peek_parent (klass); -} - -GdlDataRow * -gdl_data_row_new (GdlDataView *view, - GtkTreePath *path) -{ - GdlDataRow *row; - - row = GDL_DATA_ROW (g_object_new (gdl_data_row_get_type (), - NULL)); - - row->priv->view = view; - row->priv->model = g_object_ref (view->model); - row->priv->path = gtk_tree_path_copy (path); - load_path (row); - - return row; -} - - -#define PAD 3 - -static void -layout_row (GdlDataRow *row, - int x, int y, int width, int height) -{ - PangoLayout *layout; - - /* sizes */ - - layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), - row->priv->name); - pango_layout_get_pixel_size (layout, - &row->priv->name_r.width, - &row->priv->name_r.height); - g_object_unref (layout); - - layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), "="); - pango_layout_get_pixel_size (layout, - &row->priv->sep_r.width, - &row->priv->sep_r.height); - g_object_unref (layout); - - row->priv->title_r.width = - MAX (row->priv->name_r.width + row->priv->sep_r.width + PAD, - row->priv->split); - row->priv->title_r.height = - MAX (row->priv->name_r.height, row->priv->sep_r.width); - - if (row->priv->cell) { - gtk_cell_renderer_get_size (row->priv->cell, - GTK_WIDGET (row->priv->view), - NULL, NULL, NULL, - &row->priv->cell_r.width, - &row->priv->cell_r.height); - } else { - row->priv->cell_r.width = row->priv->cell_r.height = 0; - } - - row->priv->data_r.width = row->priv->cell_r.width; - row->priv->data_r.height = row->priv->cell_r.height; - - if (row->priv->multi) { - row->priv->expand_r.width = 10; - row->priv->expand_r.height = 10; - - row->priv->data_r.width += row->priv->expand_r.width; - row->priv->data_r.height = MAX (row->priv->expand_r.height, - row->priv->data_r.height); - - if (row->priv->expanded) { - GList *l; - int name_w = 0, data_w = 0; - for (l = row->priv->subrows; l != NULL; l = l->next) { - int w1, w2, h; - gdl_data_row_get_size (GDL_DATA_ROW (l->data), - &w1, &w2, NULL, &h); - name_w = MAX (name_w, w1); - data_w = MAX (data_w, w2); - row->priv->data_r.height += h; - } - row->priv->child_split = name_w; - row->priv->data_r.width = - MAX (name_w + data_w + 3 * PAD, - row->priv->data_r.width); - row->priv->data_r.height += 2 * PAD; - } - } - - row->priv->area_r.width = MAX (width, - row->priv->data_r.width + row->priv->title_r.width + PAD); - - row->priv->area_r.height = MAX (height, - (MAX (row->priv->data_r.height, - row->priv->title_r.height))); - - /* Positions */ - - row->priv->area_r.x = x; - row->priv->area_r.y = y; - - row->priv->title_r.x = x; - row->priv->title_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->title_r.height / 2); - - row->priv->name_r.x = x; - row->priv->name_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->name_r.height / 2); - - row->priv->sep_r.x = row->priv->title_r.x + row->priv->title_r.width - row->priv->sep_r.width; - row->priv->sep_r.y = y + ((row->priv->area_r.height) / 2) - (row->priv->sep_r.height / 2); - - row->priv->data_r.x = row->priv->title_r.x + row->priv->title_r.width + PAD; - row->priv->data_r.y = y; - - /* Readjust the data area size to fit */ - row->priv->data_r.width = row->priv->area_r.width - (row->priv->title_r.width + PAD); - row->priv->data_r.height = row->priv->area_r.height; - - if (row->priv->multi) { - row->priv->expand_r.x = row->priv->data_r.x; - row->priv->expand_r.y = row->priv->data_r.y + ((row->priv->cell_r.height) / 2) - (row->priv->expand_r.height / 2); - - row->priv->cell_r.y = row->priv->data_r.y; - row->priv->cell_r.height = MAX (row->priv->expand_r.height, row->priv->cell_r.height); - row->priv->cell_r.width = (row->priv->data_r.width - row->priv->expand_r.width); - - row->priv->cell_r.x = row->priv->expand_r.x + row->priv->expand_r.width; - } else { - row->priv->cell_r = row->priv->data_r; - } -} - -void -gdl_data_row_get_size (GdlDataRow *row, int *sep_width, - int *cell_width, int *total_width, int *height) -{ - layout_row (row, 0, 0, 0, 0); - - if (sep_width) { - *sep_width = row->priv->name_r.width + row->priv->sep_r.width + PAD; - } - - if (cell_width) *cell_width = row->priv->data_r.width; - if (total_width) *total_width = row->priv->area_r.width; - if (height) *height = row->priv->area_r.height; -} - -void -gdl_data_row_set_show_name (GdlDataRow *row, gboolean show_name) -{ -} - -void -gdl_data_row_layout (GdlDataRow *row, GdkRectangle *alloc) -{ - layout_row (row, alloc->x, alloc->y, alloc->width, alloc->height); - - if (row->priv->multi && row->priv->expanded) { - GList *l; - GdkRectangle sub; - sub.y = row->priv->expand_r.y + row->priv->expand_r.width + PAD; - sub.x = row->priv->data_r.x + PAD; - sub.width = row->priv->data_r.width - 2 * PAD; - sub.height = row->priv->data_r.height - 2 * PAD; - - for (l = row->priv->subrows; l != NULL; l = l->next) { - gdl_data_row_get_size (GDL_DATA_ROW (l->data), - NULL, NULL, NULL, &sub.height); - gdl_data_row_set_split (GDL_DATA_ROW (l->data), - row->priv->child_split); - gdl_data_row_layout (GDL_DATA_ROW (l->data), - &sub); - sub.y += sub.height; - } - } -} - -#if 0 -#define DRAWR(r) { gdk_draw_rectangle (drawable, GTK_WIDGET (row->priv->view)->style->text_gc[GTK_STATE_NORMAL],FALSE,row->priv->r.x,row->priv->r.y,row->priv->r.width, row->priv->r.height); } -#else -#define DRAWR(r) -#endif - - -void -gdl_data_row_render (GdlDataRow *row, GdkDrawable *drawable, - GdkRectangle *expose_area, - GtkCellRendererState flags) -{ - PangoLayout *layout; - - guint state = GTK_STATE_NORMAL; - - if (row->priv->selected) { - if (flags & GTK_CELL_RENDERER_SELECTED) - state = GTK_STATE_SELECTED; - else - state = GTK_STATE_ACTIVE; - gtk_paint_flat_box (GTK_WIDGET (row->priv->view)->style, - drawable, state, - GTK_SHADOW_NONE, expose_area, - GTK_WIDGET (row->priv->view), "cell_even", - row->priv->area_r.x, row->priv->area_r.y, - row->priv->area_r.width + 1, - row->priv->area_r.height + 1); - - } - - layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), - row->priv->name); - gdk_draw_layout (drawable, - GTK_WIDGET (row->priv->view)->style->text_gc[state], - row->priv->name_r.x, row->priv->name_r.y, layout); - g_object_unref (layout); - DRAWR(name_r); - - layout = gtk_widget_create_pango_layout (GTK_WIDGET (row->priv->view), "="); - gdk_draw_layout (drawable, - GTK_WIDGET (row->priv->view)->style->text_gc[state], - row->priv->sep_r.x, row->priv->sep_r.y, layout); - g_object_unref (layout); - DRAWR(sep_r); - DRAWR(title_r); - - if (row->priv->cell) { - if (row->priv->focused) { - gtk_paint_focus (GTK_WIDGET (row->priv->view)->style, - drawable, - GTK_WIDGET_STATE (GTK_WIDGET (row->priv->view)), - NULL, GTK_WIDGET (row->priv->view), - "treeview", - row->priv->cell_r.x - 1, - row->priv->cell_r.y - 1, - row->priv->cell_r.width + 2, - row->priv->cell_r.height + 2); - } - - gtk_cell_renderer_render (row->priv->cell, - drawable, GTK_WIDGET (row->priv->view), - &row->priv->area_r, - &row->priv->cell_r, - expose_area, - row->priv->selected ? GTK_CELL_RENDERER_SELECTED : 0); - DRAWR(cell_r); - } - if (row->priv->multi) { - gtk_paint_expander (GTK_WIDGET (row->priv->view)->style, - drawable, - GTK_WIDGET_STATE (GTK_WIDGET (row->priv->view)), - expose_area, - GTK_WIDGET (row->priv->view), - "gdldataview", - row->priv->expand_r.x + row->priv->expand_r.width / 2, - row->priv->expand_r.y + row->priv->expand_r.height / 2, - row->priv->expanded ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED); - DRAWR(expand_r); - - if (row->priv->expanded) { - GList *l; - - for (l = row->priv->subrows; l != NULL; l = l->next) { - gdl_data_row_render (GDL_DATA_ROW (l->data), - drawable, - expose_area, flags); - } - } - gdk_draw_rectangle (drawable, - GTK_WIDGET (row->priv->view)->style->text_gc[GTK_STATE_NORMAL], - FALSE, - row->priv->data_r.x, - row->priv->data_r.y, - row->priv->data_r.width, - row->priv->data_r.height); - } - DRAWR(data_r); -} - - -GdlDataRow * -gdl_data_row_at (GdlDataRow *row, int x, int y) -{ - if (!GDL_POINT_IN (x, y, &row->priv->area_r)) { - return NULL; - } - - if (row->priv->multi && row->priv->expanded) { - GList *l; - for (l = row->priv->subrows; l != NULL; l = l->next) { - GdlDataRow *ret = gdl_data_row_at (GDL_DATA_ROW (l->data), x, y); - if (ret) - return ret; - } - } - - return row; -} - -static gboolean -button_press_event (GdlDataRow *row, GdkEventButton *event, - GtkCellEditable **editable_widget) -{ - if (editable_widget) - *editable_widget = NULL; - - if (GDL_POINT_IN (event->x, event->y, &row->priv->expand_r)) { - if (row->priv->expanded) - contract (row); - else - expand (row); - } - - if (GDL_POINT_IN (event->x, event->y, &row->priv->cell_r) - && row->priv->editable) { - g_return_val_if_fail (editable_widget, FALSE); - *editable_widget = gtk_cell_renderer_start_editing - (row->priv->cell, - (GdkEvent*)event, - GTK_WIDGET (row->priv->view), - "1:2:3", - &row->priv->area_r, - &row->priv->cell_r, - GTK_CELL_RENDERER_SELECTED); - } - - return FALSE; - -} - - -gboolean -gdl_data_row_event (GdlDataRow *row, GdkEvent *event, - GtkCellEditable **editable_widget) -{ - switch (((GdkEventAny *)event)->type) { - case GDK_BUTTON_PRESS: - return button_press_event (row, - (GdkEventButton *)event, - editable_widget); - default: - break; - } - return FALSE; -} - -void -gdl_data_row_get_cell_area (GdlDataRow *row, - GdkRectangle *rect) -{ - *rect = row->priv->cell_r; -} - -void -gdl_data_row_set_split (GdlDataRow *row, int split) -{ - row->priv->split = split; -} - -void -gdl_data_row_set_selected (GdlDataRow *row, gboolean selected) -{ - row->priv->selected = selected; - - /* FIXME: invalidate here */ - gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); -} - -void -gdl_data_row_set_focused (GdlDataRow *row, gboolean focused) -{ - row->priv->focused = focused; - - /* FIXME: invalidate here */ - gtk_widget_queue_draw (GTK_WIDGET (row->priv->view)); -} - -const char * -gdl_data_row_get_title (GdlDataRow *row) -{ - return row->priv->name; -} diff --git a/src/libgdl/gdl-data-row.h b/src/libgdl/gdl-data-row.h deleted file mode 100644 index d4928958d..000000000 --- a/src/libgdl/gdl-data-row.h +++ /dev/null @@ -1,90 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifndef GDL_DATA_ROW_H -#define GDL_DATA_ROW_H - -#include - -#include -#include -#include -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_DATA_ROW (gdl_data_row_get_type ()) -#define GDL_DATA_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_ROW, GdlDataRow)) -#define GDL_DATA_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_ROW, GdlDataRowClass)) -#define GDL_IS_DATA_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_ROW)) -#define GDL_IS_DATA_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_ROW)) - -typedef struct _GdlDataRow GdlDataRow; -typedef struct _GdlDataRowClass GdlDataRowClass; -typedef struct _GdlDataRowPrivate GdlDataRowPrivate; - -struct _GdlDataRow { - GObject parent; - - GdlDataRowPrivate *priv; -}; - -struct _GdlDataRowClass { - GObjectClass parent_class; -}; - -GType gdl_data_row_get_type (void); -GdlDataRow *gdl_data_row_new (GdlDataView *view, - GtkTreePath *path); -void gdl_data_row_get_size (GdlDataRow *row, - int *text_w, - int *cell_w, - int *total_width, - int *height); -void gdl_data_row_set_show_name (GdlDataRow *row, - gboolean show_name); -void gdl_data_row_layout (GdlDataRow *row, - GdkRectangle *alloc); -void gdl_data_row_render (GdlDataRow *row, - GdkDrawable *drawable, - GdkRectangle *expose_area, - GtkCellRendererState flags); -GdlDataRow *gdl_data_row_at (GdlDataRow *row, - int x, - int y); -gboolean gdl_data_row_event (GdlDataRow *row, - GdkEvent *event, - GtkCellEditable **editable_widget); -void gdl_data_row_get_cell_area (GdlDataRow *row, - GdkRectangle *rect); -void gdl_data_row_set_split (GdlDataRow *row, - int split); -void gdl_data_row_set_selected (GdlDataRow *row, - gboolean selected); -void gdl_data_row_set_focused (GdlDataRow *row, - gboolean focused); -const char *gdl_data_row_get_title (GdlDataRow *row); - - -G_END_DECLS - -#endif diff --git a/src/libgdl/gdl-data-view.c b/src/libgdl/gdl-data-view.c deleted file mode 100644 index 81e1795f7..000000000 --- a/src/libgdl/gdl-data-view.c +++ /dev/null @@ -1,526 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-tools.h" -#include "gdl-data-view.h" -#include "gdl-data-frame.h" - -#include "tree-expand.xpm" -#include "tree-contract.xpm" - -struct _GdlDataViewPrivate { - GList *frames; - GList *rows; - GList *widgets; - - GdlDataFrame *selected_frame; - GdlDataRow *selected_row; - - GtkCellEditable *editable; - - GdkPixbuf *close_pixbuf; - GdkPixbuf *expand_pixbuf; - GdkPixbuf *contract_pixbuf; -}; - -typedef struct { - GtkWidget *widget; - int x, y, height, width; -} ChildWidget; - -static void gdl_data_view_instance_init (GdlDataView *dv); -static void gdl_data_view_class_init (GdlDataViewClass *klass); - -GDL_CLASS_BOILERPLATE (GdlDataView, gdl_data_view, GtkLayout, GTK_TYPE_LAYOUT); - - -#define GRID_SPACING 15 - -static void -paint_grid (GtkWidget *widget, GdkDrawable *drawable, - int offset_x, int offset_y, int width, int height) -{ - GdlDataView *dv; - int x; - int y; - - g_return_if_fail (GDL_IS_DATA_VIEW (widget)); - dv = GDL_DATA_VIEW (widget); - - x = offset_x + ((GRID_SPACING - (offset_x % GRID_SPACING)) % GRID_SPACING); - - /* Draw grid points */ - for (; x < width; x += GRID_SPACING) { - y = offset_y + ((GRID_SPACING - (offset_y % GRID_SPACING)) % GRID_SPACING); - - for (; y < height; y += GRID_SPACING) { - gdk_draw_point (drawable, - widget->style->fg_gc[GTK_WIDGET_STATE (widget)], - x, y); - } - } -} - -static void -expose_frames (GdlDataView *view, GdkEventExpose *event) -{ - GList *l; - - for (l = view->priv->frames; l != NULL; l = l->next) { - GdkRectangle intersect; - GdlDataFrame *frame = GDL_DATA_FRAME (l->data); - if (gdk_rectangle_intersect (&frame->area, - &event->area, - &intersect)) { - gdl_data_frame_draw (GDL_DATA_FRAME (l->data), - GTK_LAYOUT(view)->bin_window, - &intersect); - } - } -} - -static void -expose_widgets (GdlDataView *view, GdkEventExpose *event) -{ - GList *l; - - for (l = view->priv->widgets; l != NULL; l = l->next) { - ChildWidget *child = l->data; - gtk_container_propagate_expose (GTK_CONTAINER (view), - child->widget, event); - } -} - -static gboolean -gdl_data_view_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - if (GTK_WIDGET_DRAWABLE (widget)) { - if (event->window == GTK_LAYOUT (widget)->bin_window) { - paint_grid (widget, GTK_LAYOUT (widget)->bin_window, - event->area.x, event->area.y, - event->area.width, event->area.height); - expose_frames (GDL_DATA_VIEW (widget), event); - expose_widgets (GDL_DATA_VIEW (widget), event); - return TRUE; - } else { - GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); - } - } - - return FALSE; -} - -static GdlDataFrame * -frame_at (GdlDataView *dv, int x, int y) -{ - GList *l; - for (l = dv->priv->frames; l != NULL; l = l->next) { - GdlDataFrame *frame = l->data; - if (x >= frame->area.x && x <= frame->area.x + frame->area.width - && y >= frame->area.y && y <= frame->area.y + frame->area.height) { - return frame; - } - } - return NULL; -} - -static GdlDataRow * -row_at (GdlDataView *view, int x, int y) -{ - GList *l; - GdlDataRow *ret = NULL; - for (l = view->priv->rows; l != NULL; l = l->next) { - GdlDataRow *row = l->data; - ret = gdl_data_row_at (row, x, y); - if (ret) break; - } - return ret; -} - -static void -gdl_data_view_put (GdlDataView *view, GtkWidget *widget, - int x, int y, int width, int height) -{ - ChildWidget *child = g_new0 (ChildWidget, 1); - - child->widget = widget; - child->x = x; - child->y = y; - child->width = width; - child->height = height; - - view->priv->widgets = g_list_append (view->priv->widgets, child); - - if (GTK_WIDGET_REALIZED (view)) { - gtk_widget_set_parent_window (child->widget, - GTK_LAYOUT (view)->bin_window); - } - - gtk_widget_set_parent (child->widget, GTK_WIDGET (view)); -} - -static void -stop_editing (GdlDataView *dv) -{ - if (dv->priv->editable) { - gtk_cell_editable_editing_done (dv->priv->editable); - gtk_cell_editable_remove_widget (dv->priv->editable); - } -} - -static void -remove_widget_cb (GtkCellEditable *cell_editable, GdlDataView *view) -{ - if (view->priv->editable) { - view->priv->editable = NULL; - gdl_data_row_set_focused (view->priv->selected_row, FALSE); - gtk_widget_grab_focus (GTK_WIDGET (view)); - gtk_container_remove (GTK_CONTAINER (view), - GTK_WIDGET (cell_editable)); - } -} - -static gboolean -button_press_event_cb (GdlDataView *dv, GdkEventButton *event, gpointer data) -{ - GdlDataFrame *frame; - GdlDataRow *row; - gboolean ret = FALSE; - - stop_editing (dv); - - if (event->type == GDK_BUTTON_PRESS) { - frame = frame_at (dv, event->x, event->y); - if (frame) { - if (dv->priv->selected_frame) { - gdl_data_frame_set_selected (dv->priv->selected_frame, FALSE); - } - gdl_data_frame_set_selected (frame, TRUE); - dv->priv->selected_frame = frame; - } - - row = row_at (dv, event->x, event->y); - if (row) { - GtkCellEditable *editable; - - if (dv->priv->selected_row) { - gdl_data_row_set_selected (dv->priv->selected_row, - FALSE); - } - dv->priv->selected_row = row; - gdl_data_row_set_selected (row, TRUE); - ret = gdl_data_row_event (row, (GdkEvent*)event, - &editable); - if (editable) { - GdkRectangle area; - dv->priv->editable = editable; - gtk_cell_editable_start_editing (editable, - (GdkEvent*)event); - - gdl_data_row_get_cell_area (row, &area); - gdl_data_view_put (dv, - GTK_WIDGET (editable), - area.x, - area.y, - area.width, - area.height); - - gtk_widget_grab_focus (GTK_WIDGET (editable)); - dv->priv->editable = editable; - gdl_data_row_set_focused (row, TRUE); - - g_signal_connect - (G_OBJECT (editable), - "remove_widget", - G_CALLBACK (remove_widget_cb), dv); - } - } - } - - return ret; -} - -static void -gdl_data_view_instance_init (GdlDataView *dv) -{ - GTK_WIDGET_SET_FLAGS (dv, GTK_CAN_FOCUS); - dv->priv = g_new0 (GdlDataViewPrivate, 1); - - g_signal_connect (G_OBJECT (dv), "button_press_event", - G_CALLBACK (button_press_event_cb), - NULL); - - dv->priv->close_pixbuf = gtk_widget_render_icon (GTK_WIDGET (dv), - "gtk-close", - GTK_ICON_SIZE_MENU, - "gdl-data-view-close"); - - dv->priv->expand_pixbuf = - gdk_pixbuf_new_from_xpm_data ((const char **)tree_expand_xpm); - - dv->priv->contract_pixbuf = - gdk_pixbuf_new_from_xpm_data ((const char **)tree_contract_xpm); -} - -static void -gdl_data_view_realize (GtkWidget *widget) -{ - GList *l; - GdlDataView *view = GDL_DATA_VIEW (widget); - - GDL_CALL_PARENT (GTK_WIDGET_CLASS, realize, (widget)); - - for (l = view->priv->widgets; l != NULL; l = l->next) { - ChildWidget *child = l->data; - gtk_widget_set_parent_window (child->widget, - GTK_LAYOUT (view)->bin_window); - } -} - -static void -gdl_data_view_size_request (GtkWidget *widget, GtkRequisition *req) -{ - GList *l; - - req->width = req->height = 0; - - for (l = GDL_DATA_VIEW (widget)->priv->widgets; l != NULL; l = l->next) { - GtkRequisition child_req; - ChildWidget *child = l->data; - - gtk_widget_size_request (child->widget, &child_req); - } -} - - -static void -gdl_data_view_size_allocate (GtkWidget *widget, GtkAllocation *alloc) -{ - GdlDataView *view = GDL_DATA_VIEW (widget); - GList *l; -; - for (l = view->priv->widgets; l != NULL; l = l->next) { - ChildWidget *child = l->data; - GtkAllocation child_alloc; - - child_alloc.x = child->x; - child_alloc.y = child->y; - child_alloc.width = child->width; - child_alloc.height = child->height; - - gtk_widget_size_allocate (child->widget, &child_alloc); - } - GDL_CALL_PARENT (GTK_WIDGET_CLASS, size_allocate, (widget, alloc)); -} - -static void -gdl_data_view_forall (GtkContainer *container, gboolean include_internals, - GtkCallback callback, gpointer callback_data) -{ - GdlDataView *view = GDL_DATA_VIEW (container); - GList *l; - - for (l = view->priv->widgets; l != NULL; l = l->next) { - ChildWidget *child = l->data; - (*callback) (child->widget, callback_data); - } -} - -static void -gdl_data_view_remove (GtkContainer *container, GtkWidget *widget) -{ - GList *l; - GdlDataView *view = GDL_DATA_VIEW (container); - - for (l = view->priv->widgets; l != NULL; l = l->next) { - ChildWidget *child = l->data; - if (child->widget == widget) { - gtk_widget_unparent (widget); - view->priv->widgets = - g_list_remove_link (view->priv->widgets, l); - g_list_free_1 (l); - g_free (child); - return; - } - } -} - -static void -gdl_data_view_destroy (GtkObject *obj) -{ - GdlDataView *dv = GDL_DATA_VIEW (obj); - - stop_editing (dv); - - if (dv->priv) { - GList *l; - for (l = dv->priv->frames; l != NULL; l = l->next) { - g_object_unref (G_OBJECT (l->data)); - } - g_list_free (dv->priv->frames); - - g_object_unref (dv->priv->close_pixbuf); - g_object_unref (dv->priv->expand_pixbuf); - g_object_unref (dv->priv->contract_pixbuf); - - g_free (dv->priv); - dv->priv = NULL; - } - GDL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (obj)); -} - -static void -gdl_data_view_class_init (GdlDataViewClass *klass) -{ - GtkObjectClass *object_class = (GtkObjectClass *)klass; - GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; - GtkContainerClass *container_class = (GtkContainerClass *)klass; - - parent_class = gtk_type_class (GTK_TYPE_LAYOUT); - - container_class->forall = gdl_data_view_forall; - container_class->remove = gdl_data_view_remove; - - widget_class->expose_event = gdl_data_view_expose; - widget_class->realize = gdl_data_view_realize; - /* FIXME: unrealize */ - widget_class->size_request = gdl_data_view_size_request; - widget_class->size_allocate = gdl_data_view_size_allocate; - object_class->destroy = gdl_data_view_destroy; - - gtk_widget_class_install_style_property (widget_class, - g_param_spec_int ("expander-size", - _("Expander Size"), - _("Size of the expander arrow."), - 0, - G_MAXINT, - 10, - G_PARAM_READABLE)); -} - -GtkWidget * -gdl_data_view_new (void) -{ - GdlDataView *dv; - dv = g_object_new (gdl_data_view_get_type (), NULL); - return GTK_WIDGET (dv); -} - -void -gdl_data_view_set_model (GdlDataView *dv, GdlDataModel *model) -{ - GtkTreePath *path; - GdlDataIter iter; - gboolean iter_valid; - int x = 5; - - dv->model = model; - - path = gtk_tree_path_new_from_string ("0"); - - iter_valid = gdl_data_model_get_iter (model, &iter, path); - gtk_tree_path_free (path); - - while (iter_valid) { - GdlDataFrame *frame; - GdlDataRow *row; - - path = gdl_data_model_get_path (model, &iter); - - row = gdl_data_row_new (dv, path); - frame = gdl_data_frame_new (dv, row); - gdl_data_frame_set_position (frame, x, 5); - - dv->priv->frames = g_list_append (dv->priv->frames, - frame); - dv->priv->rows = g_list_append (dv->priv->rows, row); - - gtk_tree_path_free (path); - - x += 150; - - iter_valid = gdl_data_model_iter_next (model, &iter); - } -} - -void -gdl_data_view_layout (GdlDataView *view) -{ - GList *l; - for (l = view->priv->frames; l != NULL; l = l->next) { - gdl_data_frame_layout (GDL_DATA_FRAME (l->data)); - } -} - -GdkPixbuf * -gdl_data_view_get_close_pixbuf (GdlDataView *view) -{ - return view->priv->close_pixbuf; -} - -void -gdl_data_view_set_close_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) -{ - if (view->priv->close_pixbuf) { - g_object_unref (view->priv->close_pixbuf); - } - - view->priv->close_pixbuf = g_object_ref (pixbuf); -} - -GdkPixbuf * -gdl_data_view_get_expand_pixbuf (GdlDataView *view) -{ - return view->priv->expand_pixbuf; -} - -void -gdl_data_view_set_expand_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) -{ - if (view->priv->expand_pixbuf) { - g_object_unref (view->priv->expand_pixbuf); - } - - view->priv->expand_pixbuf = g_object_ref (pixbuf); -} - -GdkPixbuf * -gdl_data_view_get_contract_pixbuf (GdlDataView *view) -{ - return view->priv->contract_pixbuf; -} - -void -gdl_data_view_set_contract_pixbuf (GdlDataView *view, GdkPixbuf *pixbuf) -{ - if (view->priv->contract_pixbuf) { - g_object_unref (view->priv->contract_pixbuf); - } - - view->priv->contract_pixbuf = g_object_ref (pixbuf); -} diff --git a/src/libgdl/gdl-data-view.h b/src/libgdl/gdl-data-view.h deleted file mode 100644 index 3a5db02f4..000000000 --- a/src/libgdl/gdl-data-view.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2001 Dave Camp - * - * 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. - */ - -#ifndef GDL_DATA_VIEW_H -#define GDL_DATA_VIEW_H - -#include -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_DATA_VIEW (gdl_data_view_get_type ()) -#define GDL_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DATA_VIEW, GdlDataView)) -#define GDL_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) -#define GDL_IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DATA_VIEW)) -#define GDL_IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DATA_VIEW)) -#define GDL_DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DATA_VIEW, GdlDataViewClass)) - -typedef struct _GdlDataView GdlDataView; -typedef struct _GdlDataViewClass GdlDataViewClass; -typedef struct _GdlDataViewPrivate GdlDataViewPrivate; - -#define GDL_POINT_IN(x1,y1,r) ((x1) >= (r)->x && x1 < (r)->x + (r)->width && (y1) >= (r)->y && y1 < (r)->y + (r)->height) - -struct _GdlDataView { - GtkLayout layout; - - GdlDataModel *model; - - GdlDataViewPrivate *priv; -}; - -struct _GdlDataViewClass { - GtkLayoutClass parent_class; -}; - -GType gdl_data_view_get_type (void); -GtkWidget *gdl_data_view_new (void); -void gdl_data_view_set_model (GdlDataView *view, - GdlDataModel *model); -void gdl_data_view_layout (GdlDataView *view); -GdkPixbuf *gdl_data_view_get_close_pixbuf (GdlDataView *view); -void gdl_data_view_set_close_pixbuf (GdlDataView *view, - GdkPixbuf *pixbuf); -GdkPixbuf *gdl_data_view_get_expand_pixbuf (GdlDataView *view); -void gdl_data_view_set_expand_pixbuf (GdlDataView *view, - GdkPixbuf *pixbuf); -GdkPixbuf *gdl_data_view_get_contract_pixbuf (GdlDataView *view); -void gdl_data_view_set_contract_pixbuf (GdlDataView *view, - GdkPixbuf *pixbuf); - -#endif diff --git a/src/libgdl/gdl-icons.c b/src/libgdl/gdl-icons.c deleted file mode 100644 index 2af2a8a9a..000000000 --- a/src/libgdl/gdl-icons.c +++ /dev/null @@ -1,267 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* gdl-icons.c - * - * Copyright (C) 2000-2001 Dave Camp - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Authors: Dave Camp, Jeroen Zwartepoorte - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include "gdl-tools.h" -#include -#include -#include -#include "gdl-icons.h" - -enum { - PROP_BOGUS, - PROP_ICON_SIZE, -}; - -#define GDL_ICONS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GDL_TYPE_ICONS, GdlIconsPrivate)) - -typedef struct _GdlIconsPrivate GdlIconsPrivate; - -struct _GdlIconsPrivate { - int icon_size; - - GtkIconTheme *icon_theme; - GHashTable *icons; -}; - -GDL_CLASS_BOILERPLATE (GdlIcons, gdl_icons, GObject, G_TYPE_OBJECT); - -static void -gdl_icons_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ICON_SIZE: - g_value_set_int (value, priv->icon_size); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gdl_icons_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_ICON_SIZE: - priv->icon_size = g_value_get_int (value); - g_hash_table_destroy (priv->icons); - priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) gdk_pixbuf_unref); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -theme_changed_cb (GtkIconTheme *theme, - gpointer user_data) -{ - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (user_data); - - g_hash_table_destroy (priv->icons); - priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) gdk_pixbuf_unref); -} - -static void -gdl_icons_dispose (GObject *object) -{ - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (object); - - if (priv->icon_theme) { - /* Don't do that - look a GTK+ docs */ - /* g_object_unref (priv->icon_theme); */ - priv->icon_theme = NULL; - } - - if (priv->icons) { - g_hash_table_destroy (priv->icons); - priv->icons = NULL; - } -} - -static void -gdl_icons_class_init (GdlIconsClass *klass) -{ - GObjectClass *object_class = (GObjectClass *) klass; - - parent_class = g_type_class_peek_parent (klass); - - object_class->dispose = gdl_icons_dispose; - object_class->get_property = gdl_icons_get_property; - object_class->set_property = gdl_icons_set_property; - - g_object_class_install_property (object_class, PROP_ICON_SIZE, - g_param_spec_int ("icon-size", - _("Icon size"), - _("Icon size"), - 12, 256, 24, - G_PARAM_READWRITE)); - - g_type_class_add_private (object_class, sizeof (GdlIconsPrivate)); -} - -static void -gdl_icons_instance_init (GdlIcons *icons) -{ - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (icons); - - priv->icon_theme = gtk_icon_theme_get_default (); - /* gtk_icon_theme_get_default() does not ref the returned object */ - /* but API docs state the you should NOT ref it */ - /* g_object_ref (priv->icon_theme);*/ - g_signal_connect_object (G_OBJECT (priv->icon_theme), "changed", - G_CALLBACK (theme_changed_cb), icons, 0); - priv->icons = g_hash_table_new_full (g_str_hash, g_str_equal, - (GDestroyNotify) g_free, - (GDestroyNotify) gdk_pixbuf_unref); -} - -GdlIcons * -gdl_icons_new (int icon_size) -{ - return GDL_ICONS (g_object_new (GDL_TYPE_ICONS, - "icon-size", icon_size, - NULL)); -} - -GdkPixbuf * -gdl_icons_get_folder_icon (GdlIcons *icons) -{ - g_return_val_if_fail (icons != NULL, NULL); - g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); - - return gdl_icons_get_mime_icon (icons, "application/directory-normal"); -} - -GdkPixbuf * -gdl_icons_get_uri_icon (GdlIcons *icons, - const char *uri) -{ - GnomeVFSFileInfo *info; - GdkPixbuf *pixbuf; - - g_return_val_if_fail (icons != NULL, NULL); - g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); - g_return_val_if_fail (uri != NULL, NULL); - - info = gnome_vfs_file_info_new (); - gnome_vfs_get_file_info (uri, info, - GNOME_VFS_FILE_INFO_FOLLOW_LINKS | - GNOME_VFS_FILE_INFO_GET_MIME_TYPE | - GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE); - if (info->mime_type) - pixbuf = gdl_icons_get_mime_icon (icons, info->mime_type); - else - pixbuf = gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); - gnome_vfs_file_info_unref (info); - - return pixbuf; -} - -GdkPixbuf * -gdl_icons_get_mime_icon (GdlIcons *icons, - const char *mime_type) -{ - GdkPixbuf *pixbuf; - char *icon_name; - - g_return_val_if_fail (icons != NULL, NULL); - g_return_val_if_fail (GDL_IS_ICONS (icons), NULL); - g_return_val_if_fail (mime_type != NULL, NULL); - - GdlIconsPrivate *priv = GDL_ICONS_GET_PRIVATE (icons); - - pixbuf = g_hash_table_lookup (priv->icons, mime_type); - if (pixbuf != NULL) { - g_object_ref (G_OBJECT (pixbuf)); - return pixbuf; - } - - if (!strcmp (mime_type, "application/directory-normal")) { - icon_name = g_strdup ("gnome-fs-directory"); - } else { - icon_name = gnome_icon_lookup (priv->icon_theme, - NULL, - NULL, - NULL, - NULL, - mime_type, - GNOME_ICON_LOOKUP_FLAGS_NONE, - NULL); - } - - if (!icon_name) { - /* Return regular icon if one doesn't exist for mime type. */ - if (!strcmp (mime_type, "gnome-fs-regular")) - return NULL; - else - return gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); - } else { - if (!gtk_icon_theme_has_icon (priv->icon_theme, icon_name)) { - g_free (icon_name); - if (!strcmp (mime_type, "gnome-fs-regular")) - return NULL; - else - return gdl_icons_get_mime_icon (icons, "gnome-fs-regular"); - } else { - pixbuf = gtk_icon_theme_load_icon (priv->icon_theme, - icon_name, - priv->icon_size, - 0, /* lookup flags */ - NULL); - g_free (icon_name); - - if (pixbuf == NULL) { - if (!strcmp (mime_type, "gnome-fs-regular")) - return NULL; - else - return gdl_icons_get_mime_icon (icons, - "gnome-fs-regular"); - } - } - } - - g_hash_table_insert (priv->icons, g_strdup (mime_type), pixbuf); - g_object_ref (pixbuf); - - return pixbuf; -} diff --git a/src/libgdl/gdl-icons.h b/src/libgdl/gdl-icons.h deleted file mode 100644 index 79f3bba85..000000000 --- a/src/libgdl/gdl-icons.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* gdl-icons.h - * - * Copyright (C) 2000-2001 JP Rosevear - * 2000 Dave Camp - * - * 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. - * - * Authors: JP Rosevear, Dave Camp, Jeroen Zwartepoorte - */ - -#ifndef _GDL_ICONS_H_ -#define _GDL_ICONS_H_ - -#include -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_ICONS (gdl_icons_get_type ()) -#define GDL_ICONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_ICONS, GdlIcons)) -#define GDL_ICONS_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_ICONS, GdlIconsClass)) -#define GDL_IS_ICONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_ICONS)) -#define GDL_IS_ICONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_ICONS)) - -typedef struct _GdlIcons GdlIcons; -typedef struct _GdlIconsClass GdlIconsClass; - -struct _GdlIcons { - GObject parent; -}; - -struct _GdlIconsClass { - GObjectClass parent_class; -}; - -GType gdl_icons_get_type (void); -GdlIcons *gdl_icons_new (int icon_size); - -GdkPixbuf *gdl_icons_get_folder_icon (GdlIcons *icons); -GdkPixbuf *gdl_icons_get_uri_icon (GdlIcons *icons, - const char *uri); -GdkPixbuf *gdl_icons_get_mime_icon (GdlIcons *icons, - const char *mime_type); - -G_END_DECLS - -#endif /* _GDL_ICONS_H_ */ diff --git a/src/libgdl/test-dataview.c b/src/libgdl/test-dataview.c deleted file mode 100644 index bc89cbd4f..000000000 --- a/src/libgdl/test-dataview.c +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -#include "gdl-data-view.h" -#include "gdl-data-model-test.h" - -int -main (int argc, char *argv[]) -{ - GtkWidget *win; - GtkWidget *view; - GdlDataModel *model; - GtkWidget *vbox; - - gtk_init (&argc, &argv); - - win = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_default_size (GTK_WINDOW (win), 500, 200); - - vbox = gtk_vbox_new (FALSE, 5); - - view = gdl_data_view_new (); - - gtk_layout_set_hadjustment (GTK_LAYOUT (view), NULL); - gtk_layout_set_vadjustment (GTK_LAYOUT (view), NULL); - - - model = GDL_DATA_MODEL (gdl_data_model_test_new ()); - gdl_data_view_set_model (GDL_DATA_VIEW (view), - model); - - gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 0); - - gtk_container_add (GTK_CONTAINER (win), vbox); - - gtk_widget_show_all (win); - gtk_widget_grab_focus (GTK_WIDGET (view)); - - gtk_main (); - - return 0; -} -- cgit v1.2.3 From 3fb6de18c5d4b6a5f4fb08dfdb94cb39e8cd3844 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 9 Jul 2011 20:07:46 +0100 Subject: Merge upstream GDL 2.26.0 changes (bzr r10435) --- src/libgdl/gdl-combo-button.h | 4 +- src/libgdl/gdl-dock-bar.h | 1 - src/libgdl/gdl-dock-item-grip.c | 99 ++++++++------- src/libgdl/gdl-dock-item.c | 261 ++++++++++++++++++++++++++++++++++------ src/libgdl/gdl-dock.c | 2 + src/libgdl/gdl-stock.c | 2 +- src/libgdl/gdl-switcher.c | 2 +- 7 files changed, 283 insertions(+), 88 deletions(-) diff --git a/src/libgdl/gdl-combo-button.h b/src/libgdl/gdl-combo-button.h index 6e80af0b6..2f9c3ca2c 100644 --- a/src/libgdl/gdl-combo-button.h +++ b/src/libgdl/gdl-combo-button.h @@ -21,9 +21,7 @@ #ifndef _GDL_COMBO_BUTTON_H_ #define _GDL_COMBO_BUTTON_H_ -#include -#include -#include +#include G_BEGIN_DECLS diff --git a/src/libgdl/gdl-dock-bar.h b/src/libgdl/gdl-dock-bar.h index 798dded20..ca6da1d26 100644 --- a/src/libgdl/gdl-dock-bar.h +++ b/src/libgdl/gdl-dock-bar.h @@ -23,7 +23,6 @@ #define __GDL_DOCK_BAR_H__ #include -#include "libgdl/gdl-dock.h" G_BEGIN_DECLS diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c index 91b88e782..7f7d17ab2 100644 --- a/src/libgdl/gdl-dock-item-grip.c +++ b/src/libgdl/gdl-dock-item-grip.c @@ -42,7 +42,7 @@ struct _GdlDockItemGripPrivate { }; GDL_CLASS_BOILERPLATE (GdlDockItemGrip, gdl_dock_item_grip, - GtkContainer, GTK_TYPE_CONTAINER); + GtkContainer, GTK_TYPE_CONTAINER); /* must be called after size_allocate */ static void @@ -122,7 +122,7 @@ ensure_title_and_icon_pixbuf (GdlDockItemGrip *grip) static gint gdl_dock_item_grip_expose (GtkWidget *widget, - GdkEventExpose *event) + GdkEventExpose *event) { GdlDockItemGrip *grip; GdkRectangle title_area; @@ -172,7 +172,7 @@ gdl_dock_item_grip_expose (GtkWidget *widget, 0, 0, pixbuf_rect.x, pixbuf_rect.y, pixbuf_rect.width, pixbuf_rect.height, GDK_RGB_DITHER_NONE, 0, 0); - } + } } if (gdk_rectangle_intersect (&title_area, &event->area, &expose_area)) { @@ -221,15 +221,15 @@ gdl_dock_item_grip_item_notify (GObject *master, g_free (grip->_priv->title); grip->_priv->title = NULL; ensure_title_and_icon_pixbuf (grip); - gtk_widget_queue_draw (GTK_WIDGET (grip)); + gtk_widget_queue_draw (GTK_WIDGET (grip)); } else if (strcmp (pspec->name, "behavior") == 0) { - cursor = FALSE; + cursor = FALSE; if (grip->_priv->close_button) { if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item)) { gtk_widget_hide (GTK_WIDGET (grip->_priv->close_button)); } else { gtk_widget_show (GTK_WIDGET (grip->_priv->close_button)); - cursor = TRUE; + cursor = TRUE; } } if (grip->_priv->iconify_button) { @@ -237,10 +237,10 @@ gdl_dock_item_grip_item_notify (GObject *master, gtk_widget_hide (GTK_WIDGET (grip->_priv->iconify_button)); } else { gtk_widget_show (GTK_WIDGET (grip->_priv->iconify_button)); - cursor = TRUE; + cursor = TRUE; } } - if (grip->title_window && !cursor) + if (grip->title_window && !cursor) gdk_window_set_cursor (grip->title_window, NULL); } @@ -301,9 +301,9 @@ gdl_dock_item_grip_set_property (GObject *object, g_signal_connect (grip->item, "notify::stock-id", G_CALLBACK (gdl_dock_item_grip_item_notify), grip); - g_signal_connect (grip->item, "notify::behavior", - G_CALLBACK (gdl_dock_item_grip_item_notify), - grip); + g_signal_connect (grip->item, "notify::behavior", + G_CALLBACK (gdl_dock_item_grip_item_notify), + grip); if (!GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && grip->_priv->close_button) gtk_widget_show (grip->_priv->close_button); @@ -353,6 +353,7 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) grip->_priv->icon_pixbuf = NULL; grip->_priv->title_layout = NULL; + /* create the close button */ gtk_widget_push_composite_child (); grip->_priv->close_button = gtk_button_new (); gtk_widget_pop_composite_child (); @@ -369,6 +370,7 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) g_signal_connect (G_OBJECT (grip->_priv->close_button), "clicked", G_CALLBACK (gdl_dock_item_grip_close_clicked), grip); + /* create the iconify button */ gtk_widget_push_composite_child (); grip->_priv->iconify_button = gtk_button_new (); gtk_widget_pop_composite_child (); @@ -385,6 +387,7 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) g_signal_connect (G_OBJECT (grip->_priv->iconify_button), "clicked", G_CALLBACK (gdl_dock_item_grip_iconify_clicked), grip); + /* set tooltips on the buttons */ gtk_widget_set_tooltip_text (grip->_priv->iconify_button, _("Iconify this dock")); gtk_widget_set_tooltip_text (grip->_priv->close_button, @@ -426,15 +429,14 @@ gdl_dock_item_grip_realize (GtkWidget *widget) gdk_window_set_user_data (grip->title_window, widget); - if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item)) - cursor = NULL; - else if (GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) - cursor = NULL; - else - cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), + if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && + GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) + cursor = NULL; + else + cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), GDK_HAND2); gdk_window_set_cursor (grip->title_window, cursor); - if (cursor) + if (cursor) gdk_cursor_unref (cursor); } } @@ -497,15 +499,17 @@ gdl_dock_item_grip_size_request (GtkWidget *widget, pango_layout_get_pixel_size (grip->_priv->title_layout, NULL, &layout_height); gtk_widget_size_request (grip->_priv->close_button, &child_requisition); - - requisition->width += child_requisition.width; layout_height = MAX (layout_height, child_requisition.height); + if (GTK_WIDGET_VISIBLE (grip->_priv->close_button)) { + requisition->width += child_requisition.width; + } gtk_widget_size_request (grip->_priv->iconify_button, &child_requisition); - - requisition->width += child_requisition.width; layout_height = MAX (layout_height, child_requisition.height); - + if (GTK_WIDGET_VISIBLE (grip->_priv->iconify_button)) { + requisition->width += child_requisition.width; + } + requisition->height += layout_height; if (grip->_priv->icon_pixbuf) { @@ -579,33 +583,35 @@ gdl_dock_item_grip_size_allocate (GtkWidget *widget, child_allocation.x = allocation->x + allocation->width - container->border_width; child_allocation.y = allocation->y + container->border_width; - gtk_widget_size_request (grip->_priv->close_button, &button_requisition); - - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= button_requisition.width; + if (GTK_WIDGET_VISIBLE (grip->_priv->close_button)) { + gtk_widget_size_request (grip->_priv->close_button, &button_requisition); - child_allocation.width = button_requisition.width; - child_allocation.height = button_requisition.height; - - gtk_widget_size_allocate (grip->_priv->close_button, &child_allocation); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += button_requisition.width; + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) + child_allocation.x -= button_requisition.width; + child_allocation.width = button_requisition.width; + child_allocation.height = button_requisition.height; + + gtk_widget_size_allocate (grip->_priv->close_button, &child_allocation); - gtk_widget_size_request (grip->_priv->iconify_button, &button_requisition); + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) + child_allocation.x += button_requisition.width; + } - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= button_requisition.width; + if (GTK_WIDGET_VISIBLE (grip->_priv->iconify_button)) { + gtk_widget_size_request (grip->_priv->iconify_button, &button_requisition); - child_allocation.width = button_requisition.width; - child_allocation.height = button_requisition.height; + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) + child_allocation.x -= button_requisition.width; - gtk_widget_size_allocate (grip->_priv->iconify_button, &child_allocation); + child_allocation.width = button_requisition.width; + child_allocation.height = button_requisition.height; - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += button_requisition.width; + gtk_widget_size_allocate (grip->_priv->iconify_button, &child_allocation); + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) + child_allocation.x += button_requisition.width; + } if (grip->title_window) { GdkRectangle area; @@ -712,6 +718,15 @@ gdl_dock_item_grip_class_init (GdlDockItemGripClass *klass) gdl_stock_init (); } +/* ----- Public interface ----- */ + +/** + * gdl_dock_item_grip_new: + * @item: The dock item that will "own" this grip widget. + * + * Creates a new GDL dock item grip object. + * Returns: The newly created dock item grip widget. + **/ GtkWidget * gdl_dock_item_grip_new (GdlDockItem *item) { diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c index d2c36b18a..86f729c61 100644 --- a/src/libgdl/gdl-dock-item.c +++ b/src/libgdl/gdl-dock-item.c @@ -281,6 +281,16 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) /* properties */ + /** + * GdlDockItem:orientation: + * + * The orientation of the docking item. If the orientation is set to + * #GTK_ORIENTATION_VERTICAL, the grip widget will be shown along + * the top of the edge of item (if it is not hidden). If the + * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip + * widget will be shown down the left edge of the item (even if the + * widget text direction is set to RTL). + */ g_object_class_install_property ( g_object_class, PROP_ORIENTATION, g_param_spec_enum ("orientation", _("Orientation"), @@ -339,6 +349,12 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) /* signals */ + /** + * GdlDockItem::dock-drag-begin: + * @item: The dock item which is being dragged. + * + * Signals that the dock item has begun to be dragged. + **/ gdl_dock_item_signals [DOCK_DRAG_BEGIN] = g_signal_new ("dock-drag-begin", G_TYPE_FROM_CLASS (klass), @@ -349,7 +365,15 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) gdl_marshal_VOID__VOID, G_TYPE_NONE, 0); - + + /** + * GdlDockItem::dock-drag-motion: + * @item: The dock item which is being dragged. + * @x: The x-position that the dock item has been dragged to. + * @y: The y-position that the dock item has been dragged to. + * + * Signals that a dock item dragging motion event has occured. + **/ gdl_dock_item_signals [DOCK_DRAG_MOTION] = g_signal_new ("dock-drag-motion", G_TYPE_FROM_CLASS (klass), @@ -363,6 +387,14 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) G_TYPE_INT, G_TYPE_INT); + /** + * GdlDockItem::dock-drag-end: + * @item: The dock item which is no longer being dragged. + * @cancel: This value is set to TRUE if the drag was cancelled by + * the user. #cancel is set to FALSE if the drag was accepted. + * + * Signals that the dock item dragging has ended. + **/ gdl_dock_item_signals [DOCK_DRAG_END] = g_signal_new ("dock_drag_end", G_TYPE_FROM_CLASS (klass), @@ -1401,60 +1433,64 @@ gdl_dock_item_dock (GdlDockObject *object, if (parent) gdl_dock_object_freeze (parent); - /* ref ourselves since we could be destroyed when detached */ + if (new_parent) { + /* ref ourselves since we could be destroyed when detached */ g_object_ref (object); GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW); gdl_dock_object_detach (object, FALSE); - } - /* freeze the new parent, so reduce won't get called before it's - actually added to our parent */ - gdl_dock_object_freeze (new_parent); + /* freeze the new parent, so reduce won't get called before it's + actually added to our parent */ + gdl_dock_object_freeze (new_parent); - /* bind the new parent to our master, so the following adds work */ - gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object))); + /* bind the new parent to our master, so the following adds work */ + gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object))); - /* add the objects */ - if (add_ourselves_first) { - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); - splitpos = available_space - pref_size; - } else { - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); - gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); - splitpos = pref_size; - } + /* add the objects */ + if (add_ourselves_first) { + gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); + gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); + splitpos = available_space - pref_size; + } else { + gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor)); + gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object)); + splitpos = pref_size; + } - /* add the new parent to the parent */ - if (parent) - gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent)); + /* add the new parent to the parent */ + if (parent) + gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent)); - /* show automatic object */ - if (gtk_widget_get_visible (GTK_WIDGET (object))) - { - gtk_widget_show (GTK_WIDGET (new_parent)); - GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW); + /* show automatic object */ + if (gtk_widget_get_visible (GTK_WIDGET (object))) + { + gtk_widget_show (GTK_WIDGET (new_parent)); + GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW); + } gdl_dock_object_thaw (new_parent); + + /* use extra docking parameter */ + if (position != GDL_DOCK_CENTER && other_data && + G_VALUE_HOLDS (other_data, G_TYPE_UINT)) { + + g_object_set (G_OBJECT (new_parent), + "position", g_value_get_uint (other_data), + NULL); + } else if (splitpos > 0 && splitpos < available_space) { + g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL); + } + + g_object_unref (object); } - else // If the parent is already a DockNotebook, we don't need - // to create a new one. + else + { + /* If the parent is already a DockNotebook, we don't need + to create a new one. */ gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (requestor)); - - /* use extra docking parameter */ - if (position != GDL_DOCK_CENTER && other_data && - G_VALUE_HOLDS (other_data, G_TYPE_UINT)) { - - g_object_set (G_OBJECT (new_parent), - "position", g_value_get_uint (other_data), - NULL); - } else if (splitpos > 0 && splitpos < available_space) { - g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL); } - g_object_unref (object); - requestor_parent = gdl_dock_object_get_parent_object (requestor); if (GDL_IS_DOCK_NOTEBOOK (requestor_parent)) { @@ -1665,6 +1701,17 @@ gdl_dock_item_real_set_orientation (GdlDockItem *item, /* ----- Public interface ----- */ +/** + * gdl_dock_item_new: + * @name: Unique name for identifying the dock object. + * @long_name: Human readable name for the dock object. + * @behavior: General behavior for the dock item (i.e. whether it can + * float, if it's locked, etc.), as specified by + * #GdlDockItemBehavior flags. + * + * Creates a new dock item widget. + * Returns: The newly created dock item grip widget. + **/ GtkWidget * gdl_dock_item_new (const gchar *name, const gchar *long_name, @@ -1682,6 +1729,18 @@ gdl_dock_item_new (const gchar *name, return GTK_WIDGET (item); } +/** + * gdl_dock_item_new_with_stock: + * @name: Unique name for identifying the dock object. + * @long_name: Human readable name for the dock object. + * @stock_id: Stock icon for the dock object. + * @behavior: General behavior for the dock item (i.e. whether it can + * float, if it's locked, etc.), as specified by + * #GdlDockItemBehavior flags. + * + * Creates a new dock item grip widget with a given stock id. + * Returns: The newly created dock item grip widget. + **/ GtkWidget * gdl_dock_item_new_with_stock (const gchar *name, const gchar *long_name, @@ -1724,6 +1783,15 @@ gdl_dock_item_new_with_pixbuf_icon (const gchar *name, } /* convenient function (and to preserve source compat) */ +/** + * gdl_dock_item_dock_to: + * @item: The dock item that will be relocated to the dock position. + * @target: The dock item that will be used as the point of reference. + * @position: The position to dock #item, relative to #target. + * @docking_param: This value is unused, and will be ignored. + * + * Relocates a dock item to a new location relative to another dock item. + **/ void gdl_dock_item_dock_to (GdlDockItem *item, GdlDockItem *target, @@ -1761,6 +1829,18 @@ gdl_dock_item_dock_to (GdlDockItem *item, position, NULL); } +/** + * gdl_dock_item_set_orientation: + * @item: The dock item which will get it's orientation set. + * @orientation: The orientation to set the item to. If the orientation + * is set to #GTK_ORIENTATION_VERTICAL, the grip widget will be shown + * along the top of the edge of item (if it is not hidden). If the + * orientation is set to #GTK_ORIENTATION_HORIZONTAL, the grip widget + * will be shown down the left edge of the item (even if the widget + * text direction is set to RTL). + * + * This function sets the layout of the dock item. + **/ void gdl_dock_item_set_orientation (GdlDockItem *item, GtkOrientation orientation) @@ -1785,6 +1865,16 @@ gdl_dock_item_set_orientation (GdlDockItem *item, } } +/** + * gdl_dock_item_get_tablabel: + * @item: The dock item from which to get the tab label widget. + * + * Gets the current tab label widget. Note that this label widget is + * only visible when the "switcher-style" property of the #GdlDockMaster + * is set to #GDL_SWITCHER_STYLE_TABS + * + * Returns: Returns the tab label widget. + **/ GtkWidget * gdl_dock_item_get_tablabel (GdlDockItem *item) { @@ -1794,6 +1884,15 @@ gdl_dock_item_get_tablabel (GdlDockItem *item) return item->_priv->tab_label; } +/** + * gdl_dock_item_set_tablabel: + * @item: The dock item which will get it's tab label widget set. + * @tablabel: The widget that will become the tab label. + * + * Replaces the current tab label widget with another widget. Note that + * this label widget is only visible when the "switcher-style" property + * of the #GdlDockMaster is set to #GDL_SWITCHER_STYLE_TABS + **/ void gdl_dock_item_set_tablabel (GdlDockItem *item, GtkWidget *tablabel) @@ -1825,6 +1924,12 @@ gdl_dock_item_set_tablabel (GdlDockItem *item, } } +/** + * gdl_dock_item_hide_grip: + * @item: The dock item to hide the grip of. + * + * This function hides the dock item's grip widget. + **/ void gdl_dock_item_hide_grip (GdlDockItem *item) { @@ -1836,6 +1941,12 @@ gdl_dock_item_hide_grip (GdlDockItem *item) g_warning ("Grips always show unless GDL_DOCK_ITEM_BEH_NO_GRIP is set\n" ); } +/** + * gdl_dock_item_show_grip: + * @item: The dock item to show the grip of. + * + * This function shows the dock item's grip widget. + **/ void gdl_dock_item_show_grip (GdlDockItem *item) { @@ -1847,6 +1958,14 @@ gdl_dock_item_show_grip (GdlDockItem *item) } /* convenient function (and to preserve source compat) */ +/** + * gdl_dock_item_bind: + * @item: The item to bind. + * @dock: The #GdlDock widget to bind it to. Note that this widget must + * be a type of #GdlDock. + * + * Binds this dock item to a new dock master. + **/ void gdl_dock_item_bind (GdlDockItem *item, GtkWidget *dock) @@ -1859,6 +1978,12 @@ gdl_dock_item_bind (GdlDockItem *item, } /* convenient function (and to preserve source compat) */ +/** + * gdl_dock_item_unbind: + * @item: The item to unbind. + * + * Unbinds this dock item from it's dock master. + **/ void gdl_dock_item_unbind (GdlDockItem *item) { @@ -1867,6 +1992,15 @@ gdl_dock_item_unbind (GdlDockItem *item) gdl_dock_object_unbind (GDL_DOCK_OBJECT (item)); } +/** + * gdl_dock_item_hide_item: + * @item: The dock item to hide. + * + * This function hides the dock item. When dock items are hidden they + * are completely removed from the layout. + * + * The dock item close button causes the panel to be hidden. + **/ void gdl_dock_item_hide_item (GdlDockItem *item) { @@ -1928,6 +2062,15 @@ gdl_dock_item_hide_item (GdlDockItem *item) gdl_dock_object_thaw (GDL_DOCK_OBJECT (item)); } +/** + * gdl_dock_item_iconify_item: + * @item: The dock item to iconify. + * + * This function iconifies the dock item. When dock items are iconified + * they are hidden, and appear only as icons in dock bars. + * + * The dock item iconify button causes the panel to be iconified. + **/ void gdl_dock_item_iconify_item (GdlDockItem *item) { @@ -1937,6 +2080,13 @@ gdl_dock_item_iconify_item (GdlDockItem *item) gdl_dock_item_hide_item (item); } +/** + * gdl_dock_item_show_item: + * @item: The dock item to show. + * + * This function shows the dock item. When dock items are shown, they + * are displayed in their normal layout position. + **/ void gdl_dock_item_show_item (GdlDockItem *item) { @@ -1988,18 +2138,41 @@ gdl_dock_item_show_item (GdlDockItem *item) gtk_widget_show (GTK_WIDGET (item)); } +/** + * gdl_dock_item_lock: + * @item: The dock item to lock. + * + * This function locks the dock item. When locked the dock item cannot + * be dragged around and it doesn't show a grip. + **/ void gdl_dock_item_lock (GdlDockItem *item) { g_object_set (item, "locked", TRUE, NULL); } +/** + * gdl_dock_item_unlock: + * @item: The dock item to unlock. + * + * This function unlocks the dock item. When unlocked the dock item can + * be dragged around and can show a grip. + **/ void gdl_dock_item_unlock (GdlDockItem *item) { g_object_set (item, "locked", FALSE, NULL); } +/** + * gdl_dock_item_set_default_position: + * @item: The dock item + * @reference: The GdlDockObject which is the default dock for @item + * + * This method has only an effect when you add you dock_item with + * GDL_DOCK_ITEM_BEH_NEVER_FLOATING. In this case you have to assign + * it a default position. + **/ void gdl_dock_item_set_default_position (GdlDockItem *item, GdlDockObject *reference) @@ -2026,6 +2199,14 @@ gdl_dock_item_set_default_position (GdlDockItem *item, } } +/** + * gdl_dock_item_preferred_size: + * @item: The dock item to get the preferred size of. + * @req: A pointer to a #GtkRequisition into which the preferred size + * will be written. + * + * Gets the preferred size of the dock item in pixels. + **/ void gdl_dock_item_preferred_size (GdlDockItem *item, GtkRequisition *req) diff --git a/src/libgdl/gdl-dock.c b/src/libgdl/gdl-dock.c index d80a47a1f..3b0dc4e6b 100644 --- a/src/libgdl/gdl-dock.c +++ b/src/libgdl/gdl-dock.c @@ -1139,6 +1139,8 @@ gdl_dock_select_larger_item (GdlDockItem *dock_item_1, return ((size_1.width * size_1.height) >= (size_2.width * size_2.height)? dock_item_1 : dock_item_2); + } else if (placement == GDL_DOCK_NONE) { + return dock_item_1; } else { g_warning ("Should not reach here: %s:%d", __FUNCTION__, __LINE__); } diff --git a/src/libgdl/gdl-stock.c b/src/libgdl/gdl-stock.c index dc86e523b..4cb7bf929 100644 --- a/src/libgdl/gdl-stock.c +++ b/src/libgdl/gdl-stock.c @@ -59,7 +59,7 @@ icon_set_from_data (GtkIconSet *set, pixbuf = gdk_pixbuf_new_from_inline (data_size, icon_data, FALSE, &err); if (err) { - g_warning ("%s",err->message); + g_warning ("%s", err->message); g_error_free (err); err = NULL; g_object_unref (source); diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c index c67b4464b..fea3218ae 100644 --- a/src/libgdl/gdl-switcher.c +++ b/src/libgdl/gdl-switcher.c @@ -216,7 +216,7 @@ button_toggled_callback (GtkToggleButton *toggle_button, static int layout_buttons (GdlSwitcher *switcher) { - GtkRequisition client_requisition; + GtkRequisition client_requisition = {0,}; GtkAllocation *allocation = & GTK_WIDGET (switcher)->allocation; GdlSwitcherStyle switcher_style; gboolean icons_only; -- cgit v1.2.3 From 55fd3861b1b1cc012225ce351bc7f4bfa891e740 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 10 Jul 2011 01:56:02 +0100 Subject: Merge upstream GDL: GNOME_2_30_0 (bzr r10436) --- src/libgdl/Makefile_insert | 4 +- src/libgdl/gdl-combo-button.c | 383 --------------------- src/libgdl/gdl-combo-button.h | 63 ---- src/libgdl/gdl-dock-item-button-image.c | 169 +++++++++ src/libgdl/gdl-dock-item-button-image.h | 70 ++++ src/libgdl/gdl-dock-item-grip.c | 584 +++++++++++++++++--------------- src/libgdl/gdl-dock-item-grip.h | 33 +- src/libgdl/gdl-dock-item.c | 47 +++ src/libgdl/gdl-dock-item.h | 19 +- src/libgdl/gdl-dock-layout.c | 208 +++++++----- src/libgdl/gdl-dock-master.c | 2 + src/libgdl/gdl-dock-master.h | 9 + src/libgdl/gdl-dock-notebook.c | 6 +- src/libgdl/gdl-dock-object.h | 2 +- src/libgdl/gdl-dock-paned.c | 1 + src/libgdl/gdl-dock-placeholder.c | 5 +- src/libgdl/gdl-dock-placeholder.h | 2 +- src/libgdl/gdl-dock.c | 15 - src/libgdl/gdl-stock.c | 126 ------- src/libgdl/gdl-stock.h | 37 -- src/libgdl/gdl-switcher.c | 206 +++-------- src/libgdl/gdl-switcher.h | 24 +- src/libgdl/gdl.h | 33 +- src/libgdl/test-dock.c | 3 + 24 files changed, 861 insertions(+), 1190 deletions(-) delete mode 100644 src/libgdl/gdl-combo-button.c delete mode 100644 src/libgdl/gdl-combo-button.h create mode 100644 src/libgdl/gdl-dock-item-button-image.c create mode 100644 src/libgdl/gdl-dock-item-button-image.h delete mode 100644 src/libgdl/gdl-stock.c delete mode 100644 src/libgdl/gdl-stock.h diff --git a/src/libgdl/Makefile_insert b/src/libgdl/Makefile_insert index 2276aa801..e151fd5d6 100644 --- a/src/libgdl/Makefile_insert +++ b/src/libgdl/Makefile_insert @@ -16,7 +16,6 @@ libgdl_libgdl_a_SOURCES = \ libgdl/gdl-dock-tablabel.h \ libgdl/gdl-dock-placeholder.h \ libgdl/gdl-dock-bar.h \ - libgdl/gdl-stock.h \ libgdl/gdl-stock-icons.h \ libgdl/gdl-i18n.h \ libgdl/gdl-i18n.c \ @@ -24,6 +23,8 @@ libgdl_libgdl_a_SOURCES = \ libgdl/gdl-dock-master.c \ libgdl/gdl-dock.c \ libgdl/gdl-dock-item.c \ + libgdl/gdl-dock-item-button-image.c \ + libgdl/gdl-dock-item-button-image.h \ libgdl/gdl-dock-item-grip.h \ libgdl/gdl-dock-item-grip.c \ libgdl/gdl-dock-notebook.c \ @@ -31,7 +32,6 @@ libgdl_libgdl_a_SOURCES = \ libgdl/gdl-dock-tablabel.c \ libgdl/gdl-dock-placeholder.c \ libgdl/gdl-dock-bar.c \ - libgdl/gdl-stock.c \ libgdl/gdl-switcher.h \ libgdl/gdl-switcher.c \ libgdl/gdl-win32.h \ diff --git a/src/libgdl/gdl-combo-button.c b/src/libgdl/gdl-combo-button.c deleted file mode 100644 index 6414a8110..000000000 --- a/src/libgdl/gdl-combo-button.c +++ /dev/null @@ -1,383 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * gdl-combo-button.c - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include "gdl-tools.h" -#include "gdl-combo-button.h" - -struct _GdlComboButtonPrivate { - GtkWidget *default_button; - GtkWidget *image; - GtkWidget *label; - GtkWidget *menu_button; - GtkWidget *menu; - gboolean menu_popped_up; -}; - -GDL_CLASS_BOILERPLATE (GdlComboButton, gdl_combo_button, GtkHBox, GTK_TYPE_HBOX); - -static void -default_button_clicked_cb (GtkButton *button, - gpointer user_data) -{ - GdlComboButton *combo; - GdlComboButtonPrivate *priv; - - combo = GDL_COMBO_BUTTON (user_data); - priv = combo->priv; - - if (!priv->menu_popped_up) - g_signal_emit_by_name (G_OBJECT (combo), - "activate-default", NULL); -} - -static gboolean -default_button_press_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - if (event->type == GDK_BUTTON_PRESS && event->button == 1) { - GTK_BUTTON (priv->menu_button)->button_down = TRUE; - gtk_button_pressed (GTK_BUTTON (priv->menu_button)); - } - - return FALSE; -} - -static gboolean -default_button_release_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - if (event->button == 1) { - gtk_button_released (GTK_BUTTON (priv->menu_button)); - } - - return FALSE; -} - -static gboolean -button_enter_notify_cb (GtkWidget *widget, - GdkEventCrossing *event, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - if (event->detail != GDK_NOTIFY_INFERIOR) { - GTK_BUTTON (priv->default_button)->in_button = TRUE; - GTK_BUTTON (priv->menu_button)->in_button = TRUE; - gtk_button_enter (GTK_BUTTON (priv->default_button)); - gtk_button_enter (GTK_BUTTON (priv->menu_button)); - } - - return TRUE; -} - -static gboolean -button_leave_notify_cb (GtkWidget *widget, - GdkEventCrossing *event, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - if (priv->menu_popped_up) - return TRUE; - - if (event->detail != GDK_NOTIFY_INFERIOR) { - GTK_BUTTON (priv->default_button)->in_button = FALSE; - GTK_BUTTON (priv->menu_button)->in_button = FALSE; - gtk_button_leave (GTK_BUTTON (priv->default_button)); - gtk_button_leave (GTK_BUTTON (priv->menu_button)); - } - - return TRUE; -} - -static void -menu_position_func (GtkMenu *menu, - gint *x_return, - gint *y_return, - gboolean *push_in, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - GtkAllocation *allocation; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - allocation = &(priv->default_button->allocation); - - gdk_window_get_origin (priv->default_button->window, x_return, y_return); - - *x_return += allocation->x; - *y_return += allocation->height; -} - -static gboolean -menu_button_press_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - if (event->type == GDK_BUTTON_PRESS && - (event->button == 1 || event->button == 3)) { - GTK_BUTTON (priv->menu_button)->button_down = TRUE; - - gtk_button_pressed (GTK_BUTTON (priv->menu_button)); - - priv->menu_popped_up = TRUE; - gtk_menu_popup (GTK_MENU (priv->menu), NULL, NULL, - menu_position_func, combo_button, - event->button, event->time); - } - - return TRUE; -} - -static void -menu_deactivate_cb (GtkMenuShell *menu_shell, - gpointer user_data) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (user_data); - priv = combo_button->priv; - - priv->menu_popped_up = FALSE; - - GTK_BUTTON (priv->menu_button)->button_down = FALSE; - GTK_BUTTON (priv->menu_button)->in_button = FALSE; - GTK_BUTTON (priv->default_button)->in_button = FALSE; - gtk_button_leave (GTK_BUTTON (priv->menu_button)); - gtk_button_leave (GTK_BUTTON (priv->default_button)); - gtk_button_clicked (GTK_BUTTON (priv->menu_button)); -} - -static void -menu_detacher (GtkWidget *widget, - GtkMenu *menu) -{ - GdlComboButton *combo_button; - - combo_button = GDL_COMBO_BUTTON (widget); - - g_signal_handlers_disconnect_by_func (G_OBJECT (menu), - menu_deactivate_cb, - combo_button); - combo_button->priv->menu = NULL; -} - -static void -gdl_combo_button_destroy (GtkObject *object) -{ - GdlComboButton *combo_button; - GdlComboButtonPrivate *priv; - - combo_button = GDL_COMBO_BUTTON (object); - priv = combo_button->priv; - - if (priv) { - g_free (priv); - combo_button->priv = NULL; - } - - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); -} - -static void -gdl_combo_button_class_init (GdlComboButtonClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - parent_class = g_type_class_peek_parent (klass); - object_class = GTK_OBJECT_CLASS (klass); - widget_class = GTK_WIDGET_CLASS (klass); - - object_class->destroy = gdl_combo_button_destroy; - - g_signal_new ("activate-default", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdlComboButtonClass, activate_default), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); -} - -static void -gdl_combo_button_instance_init (GdlComboButton *combo_button) -{ - GdlComboButtonPrivate *priv; - GtkWidget *hbox, *align, *arrow; - - priv = g_new (GdlComboButtonPrivate, 1); - combo_button->priv = priv; - - priv->menu = NULL; - priv->menu_popped_up = FALSE; - - priv->default_button = gtk_button_new (); - gtk_button_set_relief (GTK_BUTTON (priv->default_button), GTK_RELIEF_NONE); - - /* Following code copied from gtk_button_construct_child. */ - priv->label = gtk_label_new (""); - gtk_label_set_use_underline (GTK_LABEL (priv->label), TRUE); - gtk_label_set_mnemonic_widget (GTK_LABEL (priv->label), - priv->default_button); - - priv->image = gtk_image_new (); - hbox = gtk_hbox_new (FALSE, 2); - - align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); - - gtk_box_pack_start (GTK_BOX (hbox), priv->image, FALSE, FALSE, 0); - gtk_box_pack_end (GTK_BOX (hbox), priv->label, FALSE, FALSE, 0); - - gtk_container_add (GTK_CONTAINER (priv->default_button), align); - gtk_container_add (GTK_CONTAINER (align), hbox); - /* End copied block. */ - - gtk_box_pack_start (GTK_BOX (combo_button), priv->default_button, - FALSE, FALSE, 0); - gtk_widget_show_all (priv->default_button); - - priv->menu_button = gtk_button_new (); - gtk_button_set_relief (GTK_BUTTON (priv->menu_button), GTK_RELIEF_NONE); - arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE); - gtk_container_add (GTK_CONTAINER (priv->menu_button), arrow); - gtk_box_pack_start (GTK_BOX (combo_button), priv->menu_button, FALSE, - FALSE, 0); - gtk_widget_show_all (priv->menu_button); - - /* Default button. */ - g_signal_connect (G_OBJECT (priv->default_button), "clicked", - G_CALLBACK (default_button_clicked_cb), combo_button); - g_signal_connect (G_OBJECT (priv->default_button), "button_press_event", - G_CALLBACK (default_button_press_event_cb), combo_button); - g_signal_connect (G_OBJECT (priv->default_button), "button_release_event", - G_CALLBACK (default_button_release_event_cb), combo_button); - g_signal_connect (G_OBJECT (priv->default_button), "enter_notify_event", - G_CALLBACK (button_enter_notify_cb), combo_button); - g_signal_connect (G_OBJECT (priv->default_button), "leave_notify_event", - G_CALLBACK (button_leave_notify_cb), combo_button); - - /* Menu button. */ - g_signal_connect (G_OBJECT (priv->menu_button), "button_press_event", - G_CALLBACK (menu_button_press_event_cb), combo_button); - g_signal_connect (G_OBJECT (priv->menu_button), "enter_notify_event", - G_CALLBACK (button_enter_notify_cb), combo_button); - g_signal_connect (G_OBJECT (priv->menu_button), "leave_notify_event", - G_CALLBACK (button_leave_notify_cb), combo_button); -} - -GtkWidget * -gdl_combo_button_new (void) -{ - GtkWidget *combo_button; - - combo_button = GTK_WIDGET (g_object_new (GDL_TYPE_COMBO_BUTTON, NULL)); - - return combo_button; -} - -void -gdl_combo_button_set_icon (GdlComboButton *combo_button, - GdkPixbuf *pixbuf) -{ - GdlComboButtonPrivate *priv; - - g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); - g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); - - priv = combo_button->priv; - - gtk_image_set_from_pixbuf (GTK_IMAGE (priv->image), pixbuf); -} - -void -gdl_combo_button_set_label (GdlComboButton *combo_button, - const gchar *label) -{ - GdlComboButtonPrivate *priv; - - g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); - g_return_if_fail (label != NULL); - - priv = combo_button->priv; - - gtk_label_set_text (GTK_LABEL (priv->label), label); -} - -void -gdl_combo_button_set_menu (GdlComboButton *combo_button, - GtkMenu *menu) -{ - GdlComboButtonPrivate *priv; - - g_return_if_fail (GDL_IS_COMBO_BUTTON (combo_button)); - g_return_if_fail (GTK_IS_MENU (menu)); - - priv = combo_button->priv; - - if (priv->menu != NULL) - gtk_menu_detach (GTK_MENU (priv->menu)); - - priv->menu = GTK_WIDGET (menu); - if (menu == NULL) - return; - - gtk_menu_attach_to_widget (menu, GTK_WIDGET (combo_button), menu_detacher); - - g_signal_connect (G_OBJECT (menu), "deactivate", - G_CALLBACK (menu_deactivate_cb), combo_button); -} diff --git a/src/libgdl/gdl-combo-button.h b/src/libgdl/gdl-combo-button.h deleted file mode 100644 index 2f9c3ca2c..000000000 --- a/src/libgdl/gdl-combo-button.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * gdl-combo-button.h - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _GDL_COMBO_BUTTON_H_ -#define _GDL_COMBO_BUTTON_H_ - -#include - -G_BEGIN_DECLS - -#define GDL_TYPE_COMBO_BUTTON (gdl_combo_button_get_type ()) -#define GDL_COMBO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_COMBO_BUTTON, GdlComboButton)) -#define GDL_COMBO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_COMBO_BUTTON, GdlComboButtonClass)) -#define GDL_IS_COMBO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_COMBO_BUTTON)) -#define GDL_IS_COMBO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GDL_TYPE_COMBO_BUTTON)) - -typedef struct _GdlComboButton GdlComboButton; -typedef struct _GdlComboButtonPrivate GdlComboButtonPrivate; -typedef struct _GdlComboButtonClass GdlComboButtonClass; - -struct _GdlComboButton { - GtkHBox parent; - - GdlComboButtonPrivate *priv; -}; - -struct _GdlComboButtonClass { - GtkHBoxClass parent_class; - - /* Signals. */ - void (* activate_default) (GdlComboButton *combo_button); -}; - -GType gdl_combo_button_get_type (void); -GtkWidget *gdl_combo_button_new (void); - -void gdl_combo_button_set_icon (GdlComboButton *combo_button, - GdkPixbuf *pixbuf); -void gdl_combo_button_set_label (GdlComboButton *combo_button, - const gchar *label); -void gdl_combo_button_set_menu (GdlComboButton *combo_button, - GtkMenu *menu); - -G_END_DECLS - -#endif /* _GDL_COMBO_BUTTON_H_ */ diff --git a/src/libgdl/gdl-dock-item-button-image.c b/src/libgdl/gdl-dock-item-button-image.c new file mode 100644 index 000000000..f115c652c --- /dev/null +++ b/src/libgdl/gdl-dock-item-button-image.c @@ -0,0 +1,169 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * gdl-dock-item-button-image.c + * + * Author: Joel Holdsworth + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "gdl-dock-item-button-image.h" + +#include +#include "gdl-tools.h" + +#define ICON_SIZE 12 + +GDL_CLASS_BOILERPLATE (GdlDockItemButtonImage, + gdl_dock_item_button_image, + GtkWidget, GTK_TYPE_WIDGET); + +static gint +gdl_dock_item_button_image_expose (GtkWidget *widget, + GdkEventExpose *event) +{ + GdlDockItemButtonImage *button_image; + GtkStyle *style; + GdkColor *color; + + g_return_val_if_fail (widget != NULL, 0); + button_image = GDL_DOCK_ITEM_BUTTON_IMAGE (widget); + + cairo_t *cr = gdk_cairo_create (event->window); + cairo_translate (cr, event->area.x, event->area.y); + + /* Set up the pen */ + cairo_set_line_width(cr, 1.0); + + style = gtk_widget_get_style (widget); + g_return_if_fail (style != NULL); + color = &style->fg[GTK_STATE_NORMAL]; + cairo_set_source_rgba(cr, color->red / 65535.0, + color->green / 65535.0, color->blue / 65535.0, 0.55); + + /* Draw the icon border */ + cairo_move_to (cr, 10.5, 2.5); + cairo_arc (cr, 10.5, 4.5, 2, -0.5 * M_PI, 0); + cairo_line_to (cr, 12.5, 10.5); + cairo_arc (cr, 10.5, 10.5, 2, 0, 0.5 * M_PI); + cairo_line_to (cr, 4.5, 12.5); + cairo_arc (cr, 4.5, 10.5, 2, 0.5 * M_PI, M_PI); + cairo_line_to (cr, 2.5, 4.5); + cairo_arc (cr, 4.5, 4.5, 2, M_PI, 1.5 * M_PI); + cairo_close_path (cr); + + cairo_stroke (cr); + + /* Draw the icon */ + cairo_new_path (cr); + + switch(button_image->image_type) { + case GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE: + cairo_move_to (cr, 4.0, 5.5); + cairo_line_to (cr, 4.0, 5.5); + cairo_line_to (cr, 6.0, 7.5); + cairo_line_to (cr, 4.0, 9.5); + cairo_line_to (cr, 5.5, 11.0); + cairo_line_to (cr, 7.5, 9.0); + cairo_line_to (cr, 9.5, 11.0); + cairo_line_to (cr, 11.0, 9.5); + cairo_line_to (cr, 9.0, 7.5); + cairo_line_to (cr, 11.0, 5.5); + cairo_line_to (cr, 9.5, 4.0); + cairo_line_to (cr, 7.5, 6.0); + cairo_line_to (cr, 5.5, 4.0); + cairo_close_path (cr); + break; + + case GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY: + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { + cairo_move_to (cr, 4.5, 7.5); + cairo_line_to (cr, 10.0, 4.75); + cairo_line_to (cr, 10.0, 10.25); + cairo_close_path (cr); + } else { + cairo_move_to (cr, 10.5, 7.5); + cairo_line_to (cr, 5, 4.75); + cairo_line_to (cr, 5, 10.25); + cairo_close_path (cr); + } + break; + + default: + break; + } + + cairo_fill (cr); + + /* Finish up */ + cairo_destroy (cr); + + return 0; +} + +static void +gdl_dock_item_button_image_instance_init ( + GdlDockItemButtonImage *button_image) +{ + GTK_WIDGET_SET_FLAGS (button_image, GTK_NO_WINDOW); +} + +static void +gdl_dock_item_button_image_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + g_return_if_fail (GDL_IS_DOCK_ITEM_BUTTON_IMAGE (widget)); + g_return_if_fail (requisition != NULL); + + requisition->width = ICON_SIZE; + requisition->height = ICON_SIZE; +} + +static void +gdl_dock_item_button_image_class_init ( + GdlDockItemButtonImageClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + widget_class->expose_event = + gdl_dock_item_button_image_expose; + widget_class->size_request = + gdl_dock_item_button_image_size_request; +} + +/* ----- Public interface ----- */ + +/** + * gdl_dock_item_button_image_new: + * @param image_type: Specifies what type of image the widget should + * display + * + * Creates a new GDL dock button image object. + * Returns: The newly created dock item button image widget. + **/ +GtkWidget* +gdl_dock_item_button_image_new (GdlDockItemButtonImageType image_type) +{ + GdlDockItemButtonImage *button_image = g_object_new ( + GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, NULL); + button_image->image_type = image_type; + + return GTK_WIDGET (button_image); +} diff --git a/src/libgdl/gdl-dock-item-button-image.h b/src/libgdl/gdl-dock-item-button-image.h new file mode 100644 index 000000000..ce0c6faaf --- /dev/null +++ b/src/libgdl/gdl-dock-item-button-image.h @@ -0,0 +1,70 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * gdl-dock-item-button-image.h + * + * Author: Joel Holdsworth + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ +#define _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ + +#include + +G_BEGIN_DECLS + +/* Standard Macros */ +#define GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE \ + (gdl_dock_item_button_image_get_type()) +#define GDL_DOCK_ITEM_BUTTON_IMAGE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImage)) +#define GDL_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass)) +#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE)) +#define GDL_IS_DOCK_ITEM_BUTTON_IMAGE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE)) +#define GDL_DOCK_ITEM_BUTTON_IMAGE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GDL_TYPE_DOCK_ITEM_BUTTON_IMAGE, GdlDockItemButtonImageClass)) + +/* Data Types & Structures */ +typedef enum { + GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE, + GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY +} GdlDockItemButtonImageType; + +typedef struct _GdlDockItemButtonImage GdlDockItemButtonImage; +typedef struct _GdlDockItemButtonImageClass GdlDockItemButtonImageClass; + +struct _GdlDockItemButtonImage { + GtkWidget parent; + + GdlDockItemButtonImageType image_type; +}; + +struct _GdlDockItemButtonImageClass { + GtkWidgetClass parent_class; +}; + +/* Data Public Functions */ +GType gdl_dock_item_button_image_get_type (void); +GtkWidget *gdl_dock_item_button_image_new ( + GdlDockItemButtonImageType image_type); + +G_END_DECLS + +#endif /* _GDL_DOCK_ITEM_BUTTON_IMAGE_H_ */ diff --git a/src/libgdl/gdl-dock-item-grip.c b/src/libgdl/gdl-dock-item-grip.c index 7f7d17ab2..c5eb6f370 100644 --- a/src/libgdl/gdl-dock-item-grip.c +++ b/src/libgdl/gdl-dock-item-grip.c @@ -1,13 +1,30 @@ /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/** +/* * gdl-dock-item-grip.c * - * Based on bonobo-dock-item-grip. Original copyright notice follows. + * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc. + * + * Based on BonoboDockItemGrip. Original copyright notice follows. + * + * Copyright (C) 1998 Ettore Perazzoli + * Copyright (C) 1998 Elliot Lee + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * All rights reserved. * - * Author: - * Michael Meeks + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. * - * Copyright (C) 2002 Sun Microsystems, Inc. + * 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H @@ -20,10 +37,12 @@ #include #include "gdl-dock-item.h" #include "gdl-dock-item-grip.h" -#include "gdl-stock.h" +#include "gdl-dock-item-button-image.h" +#include "gdl-switcher.h" #include "gdl-tools.h" #define ALIGN_BORDER 5 +#define DRAG_HANDLE_SIZE 10 enum { PROP_0, @@ -31,93 +50,64 @@ enum { }; struct _GdlDockItemGripPrivate { + GtkWidget *label; + GtkWidget *close_button; GtkWidget *iconify_button; - - gboolean icon_pixbuf_valid; - GdkPixbuf *icon_pixbuf; - - gchar *title; - PangoLayout *title_layout; + + gboolean handle_shown; }; GDL_CLASS_BOILERPLATE (GdlDockItemGrip, gdl_dock_item_grip, GtkContainer, GTK_TYPE_CONTAINER); - -/* must be called after size_allocate */ -static void -gdl_dock_item_grip_get_title_area (GdlDockItemGrip *grip, - GdkRectangle *area) -{ - GtkWidget *widget = GTK_WIDGET (grip); - gint border = GTK_CONTAINER (grip)->border_width; - gint alloc_height; - - area->width = (widget->allocation.width - 2 * border - ALIGN_BORDER); - - pango_layout_get_pixel_size (grip->_priv->title_layout, NULL, &alloc_height); - - alloc_height = MAX (grip->_priv->close_button->allocation.height, alloc_height); - alloc_height = MAX (grip->_priv->iconify_button->allocation.height, alloc_height); - if (gtk_widget_get_visible (grip->_priv->close_button)) { - area->width -= grip->_priv->close_button->allocation.width; - } - if (gtk_widget_get_visible (grip->_priv->iconify_button)) { - area->width -= grip->_priv->iconify_button->allocation.width; - } - - area->x = widget->allocation.x + border + ALIGN_BORDER; - area->y = widget->allocation.y + border; - area->height = alloc_height; - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - area->x += (widget->allocation.width - 2 * border) - area->width; -} - -static void -ensure_title_and_icon_pixbuf (GdlDockItemGrip *grip) + +GtkWidget* +gdl_dock_item_create_label_widget(GdlDockItemGrip *grip) { - gchar *stock_id; + GtkHBox *label_box; + GtkImage *image; + GtkLabel *label; + gchar *stock_id = NULL; + gchar *title = NULL; GdkPixbuf *pixbuf; + + label_box = (GtkHBox*)gtk_hbox_new (FALSE, 0); - g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (grip)); - - /* get long name property from the dock object */ - if (!grip->_priv->title) { - g_object_get (G_OBJECT (grip->item), "long-name", &grip->_priv->title, NULL); - if (!grip->_priv->title) - grip->_priv->title = g_strdup (""); - } - - /* retrieve stock pixbuf, if any */ - if (!grip->_priv->icon_pixbuf_valid) { - g_object_get (G_OBJECT (grip->item), "stock-id", &stock_id, NULL); + g_object_get (G_OBJECT (grip->item), "stock-id", &stock_id, NULL); + g_object_get (G_OBJECT (grip->item), "pixbuf-icon", &pixbuf, NULL); + if(stock_id) { + image = GTK_IMAGE(gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU)); - if (stock_id) { - grip->_priv->icon_pixbuf = gtk_widget_render_icon (GTK_WIDGET (grip), - stock_id, - GTK_ICON_SIZE_MENU, ""); - g_free (stock_id); - grip->_priv->icon_pixbuf_valid = TRUE; - } + gtk_widget_show (GTK_WIDGET(image)); + gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0); + + g_free (stock_id); + } + else if (pixbuf) { + image = GTK_IMAGE(gtk_image_new_from_pixbuf (pixbuf)); + + gtk_widget_show (GTK_WIDGET(image)); + gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(image), FALSE, TRUE, 0); } - - /* retrieve pixbuf icon, if any */ - if (!grip->_priv->icon_pixbuf_valid) { - g_object_get (G_OBJECT (grip->item), "pixbuf-icon", &pixbuf, NULL); - if (pixbuf) { - grip->_priv->icon_pixbuf = pixbuf; - grip->_priv->icon_pixbuf_valid = TRUE; + g_object_get (G_OBJECT (grip->item), "long-name", &title, NULL); + if (title) { + label = GTK_LABEL(gtk_label_new(title)); + gtk_label_set_ellipsize(label, PANGO_ELLIPSIZE_END); + gtk_label_set_justify(label, GTK_JUSTIFY_LEFT); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_widget_show (GTK_WIDGET(label)); + + if (gtk_widget_get_direction (GTK_WIDGET(grip)) == GTK_TEXT_DIR_RTL) { + gtk_box_pack_end(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1); + } else { + gtk_box_pack_start(GTK_BOX(label_box), GTK_WIDGET(label), TRUE, TRUE, 1); } + + g_free(title); } - - /* create layout: the actual text is reset at size_allocate */ - if (!grip->_priv->title_layout) { - grip->_priv->title_layout = gtk_widget_create_pango_layout (GTK_WIDGET (grip), - grip->_priv->title); - pango_layout_set_single_paragraph_mode (grip->_priv->title_layout, TRUE); - } + + return GTK_WIDGET(label_box); } static gint @@ -125,6 +115,14 @@ gdl_dock_item_grip_expose (GtkWidget *widget, GdkEventExpose *event) { GdlDockItemGrip *grip; +/*<<<<<<< HEAD */ + GdkRectangle handle_area; + GdkRectangle expose_area; + + grip = GDL_DOCK_ITEM_GRIP (widget); + + if(grip->_priv->handle_shown) { +/*======= GdkRectangle title_area; GdkRectangle expose_area; GdkGC *bg_style; @@ -134,11 +132,11 @@ gdl_dock_item_grip_expose (GtkWidget *widget, gint text_y; grip = GDL_DOCK_ITEM_GRIP (widget); - gdl_dock_item_grip_get_title_area (grip, &title_area); + gdl_dock_item_grip_get_title_area (grip, &title_area); */ /* draw background, highlight it if the dock item or any of its * descendants have focus */ - bg_style = (gdl_dock_item_or_child_has_focus (grip->item) ? +/* bg_style = (gdl_dock_item_or_child_has_focus (grip->item) ? gtk_widget_get_style (widget)->dark_gc[widget->state] : gtk_widget_get_style (widget)->mid_gc[widget->state]); @@ -148,51 +146,35 @@ gdl_dock_item_grip_expose (GtkWidget *widget, if (grip->_priv->icon_pixbuf) { GdkRectangle pixbuf_rect; +>>>>>>> gdl-2.26.0-with-inkscape */ - pixbuf_rect.width = gdk_pixbuf_get_width (grip->_priv->icon_pixbuf); - pixbuf_rect.height = gdk_pixbuf_get_height (grip->_priv->icon_pixbuf); - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) { - pixbuf_rect.x = title_area.x + title_area.width - pixbuf_rect.width; + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { + handle_area.x = widget->allocation.x; + handle_area.y = widget->allocation.y; + handle_area.width = DRAG_HANDLE_SIZE; + handle_area.height = widget->allocation.height; } else { - pixbuf_rect.x = title_area.x; - title_area.x += pixbuf_rect.width + 1; + handle_area.x = widget->allocation.x + widget->allocation.width + - DRAG_HANDLE_SIZE; + handle_area.y = widget->allocation.y; + handle_area.width = DRAG_HANDLE_SIZE; + handle_area.height = widget->allocation.height; } - /* shrink title area by the pixbuf width plus a 1px spacing */ - title_area.width -= pixbuf_rect.width + 1; - pixbuf_rect.y = title_area.y + (title_area.height - pixbuf_rect.height) / 2; - - if (gdk_rectangle_intersect (&event->area, &pixbuf_rect, &expose_area)) { - GdkGC *gc; - GtkStyle *style; - - style = gtk_widget_get_style (widget); - gc = style->bg_gc[widget->state]; - gdk_draw_pixbuf (GDK_DRAWABLE (widget->window), gc, - grip->_priv->icon_pixbuf, - 0, 0, pixbuf_rect.x, pixbuf_rect.y, - pixbuf_rect.width, pixbuf_rect.height, - GDK_RGB_DITHER_NONE, 0, 0); - } - } - if (gdk_rectangle_intersect (&title_area, &event->area, &expose_area)) { - pango_layout_get_pixel_size (grip->_priv->title_layout, &layout_width, - &layout_height); + if (gdk_rectangle_intersect (&handle_area, &event->area, &expose_area)) { - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - text_x = title_area.x + title_area.width - layout_width; - else - text_x = title_area.x; - - text_y = title_area.y + (title_area.height - layout_height) / 2; - - gtk_paint_layout (widget->style, widget->window, widget->state, TRUE, - &expose_area, widget, NULL, text_x, text_y, - grip->_priv->title_layout); + gtk_paint_handle (widget->style, widget->window, widget->state, + GTK_SHADOW_NONE, &expose_area, widget, + "handlebox", handle_area.x, handle_area.y, + handle_area.width, handle_area.height, + GTK_ORIENTATION_VERTICAL); + + } + } return GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event); -} +} static void gdl_dock_item_grip_item_notify (GObject *master, @@ -205,23 +187,12 @@ gdl_dock_item_grip_item_notify (GObject *master, grip = GDL_DOCK_ITEM_GRIP (data); - if (strcmp (pspec->name, "stock-id") == 0) { - if (grip->_priv->icon_pixbuf) { - g_object_unref (grip->_priv->icon_pixbuf); - grip->_priv->icon_pixbuf = NULL; - } - grip->_priv->icon_pixbuf_valid = FALSE; - ensure_title_and_icon_pixbuf (grip); - - } else if (strcmp (pspec->name, "long-name") == 0) { - if (grip->_priv->title_layout) { - g_object_unref (grip->_priv->title_layout); - grip->_priv->title_layout = NULL; - } - g_free (grip->_priv->title); - grip->_priv->title = NULL; - ensure_title_and_icon_pixbuf (grip); - gtk_widget_queue_draw (GTK_WIDGET (grip)); + if ((strcmp (pspec->name, "stock-id") == 0) || + (strcmp (pspec->name, "long-name") == 0)) { + + gdl_dock_item_grip_set_label (grip, + gdl_dock_item_create_label_widget(grip)); + } else if (strcmp (pspec->name, "behavior") == 0) { cursor = FALSE; if (grip->_priv->close_button) { @@ -250,20 +221,13 @@ static void gdl_dock_item_grip_destroy (GtkObject *object) { GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (object); - + if (grip->_priv) { GdlDockItemGripPrivate *priv = grip->_priv; - if (priv->title_layout) { - g_object_unref (priv->title_layout); - priv->title_layout = NULL; - } - g_free (priv->title); - priv->title = NULL; - - if (priv->icon_pixbuf) { - g_object_unref (priv->icon_pixbuf); - priv->icon_pixbuf = NULL; + if (priv->label) { + gtk_widget_unparent(grip->_priv->label); + priv->label = NULL; } if (grip->item) @@ -275,7 +239,7 @@ gdl_dock_item_grip_destroy (GtkObject *object) grip->_priv = NULL; g_free (priv); } - + GDL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); } @@ -331,10 +295,34 @@ static void gdl_dock_item_grip_iconify_clicked (GtkWidget *widget, GdlDockItemGrip *grip) { + GtkWidget *parent; + (void)widget; g_return_if_fail (grip->item != NULL); - gdl_dock_item_iconify_item (grip->item); + parent = gtk_widget_get_parent (GTK_WIDGET (grip->item)); + if (GDL_IS_SWITCHER (parent)) + { + /* Note: We can not use gtk_container_foreach (parent) here because + * during iconificatoin, the internal children changes in parent. + * Instead we keep a list of items to iconify and iconify them + * one by one. + */ + GList *node; + GList *items = + gtk_container_get_children (GTK_CONTAINER (parent)); + for (node = items; node != NULL; node = node->next) + { + GdlDockItem *item = GDL_DOCK_ITEM (node->data); + if (!GDL_DOCK_ITEM_CANT_ICONIFY (item)) + gdl_dock_item_iconify_item (item); + } + g_list_free (items); + } + else + { + gdl_dock_item_iconify_item (grip->item); + } /* Workaround to unhighlight the iconify button. */ GTK_BUTTON (grip->_priv->iconify_button)->in_button = FALSE; @@ -349,10 +337,9 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) gtk_widget_set_has_window (GTK_WIDGET (grip), FALSE); grip->_priv = g_new0 (GdlDockItemGripPrivate, 1); - grip->_priv->icon_pixbuf_valid = FALSE; - grip->_priv->icon_pixbuf = NULL; - grip->_priv->title_layout = NULL; - + grip->_priv->label = NULL; + grip->_priv->handle_shown = FALSE; + /* create the close button */ gtk_widget_push_composite_child (); grip->_priv->close_button = gtk_button_new (); @@ -363,7 +350,7 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) gtk_button_set_relief (GTK_BUTTON (grip->_priv->close_button), GTK_RELIEF_NONE); gtk_widget_show (grip->_priv->close_button); - image = gtk_image_new_from_stock (GDL_STOCK_CLOSE, GTK_ICON_SIZE_MENU); + image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_CLOSE); gtk_container_add (GTK_CONTAINER (grip->_priv->close_button), image); gtk_widget_show (image); @@ -380,7 +367,7 @@ gdl_dock_item_grip_instance_init (GdlDockItemGrip *grip) gtk_button_set_relief (GTK_BUTTON (grip->_priv->iconify_button), GTK_RELIEF_NONE); gtk_widget_show (grip->_priv->iconify_button); - image = gtk_image_new_from_stock (GDL_STOCK_MENU_RIGHT, GTK_ICON_SIZE_MENU); + image = gdl_dock_item_button_image_new(GDL_DOCK_ITEM_BUTTON_IMAGE_ICONIFY); gtk_container_add (GTK_CONTAINER (grip->_priv->iconify_button), image); gtk_widget_show (image); @@ -401,33 +388,36 @@ gdl_dock_item_grip_realize (GtkWidget *widget) GTK_WIDGET_CLASS (parent_class)->realize (widget); + g_return_if_fail (grip->_priv != NULL); + if (!grip->title_window) { GdkWindowAttr attributes; - GdkRectangle area; GdkCursor *cursor; - ensure_title_and_icon_pixbuf (grip); - gdl_dock_item_grip_get_title_area (grip, &area); - - attributes.x = area.x; - attributes.y = area.y; - attributes.width = area.width; - attributes.height = area.height; - attributes.window_type = GDK_WINDOW_TEMP; - attributes.wclass = GDK_INPUT_ONLY; - attributes.override_redirect = TRUE; - attributes.event_mask = (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_BUTTON_MOTION_MASK | - gtk_widget_get_events (widget)); + g_return_if_fail (grip->_priv->label != NULL); + + attributes.x = grip->_priv->label->allocation.x; + attributes.y = grip->_priv->label->allocation.y; + attributes.width = grip->_priv->label->allocation.width; + attributes.height = grip->_priv->label->allocation.height; + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.event_mask = GDK_ALL_EVENTS_MASK; grip->title_window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, - (GDK_WA_X | - GDK_WA_Y | - GDK_WA_NOREDIR)); + &attributes, (GDK_WA_X | GDK_WA_Y)); + + gdk_window_set_user_data (grip->title_window, grip); + + /* Unref the ref from parent realize for NO_WINDOW */ + g_object_unref (widget->window); + + /* Need to ref widget->window, because parent unrealize unrefs it */ + widget->window = g_object_ref (grip->title_window); + GTK_WIDGET_UNSET_FLAGS(widget, GTK_NO_WINDOW); - gdk_window_set_user_data (grip->title_window, widget); + /* Unset the background so as to make the colour match the parent window */ + gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, NULL); if (GDL_DOCK_ITEM_CANT_CLOSE (grip->item) && GDL_DOCK_ITEM_CANT_ICONIFY (grip->item)) @@ -447,6 +437,7 @@ gdl_dock_item_grip_unrealize (GtkWidget *widget) GdlDockItemGrip *grip = GDL_DOCK_ITEM_GRIP (widget); if (grip->title_window) { + GTK_WIDGET_SET_FLAGS(widget, GTK_NO_WINDOW); gdk_window_set_user_data (grip->title_window, NULL); gdk_window_destroy (grip->title_window); grip->title_window = NULL; @@ -484,7 +475,7 @@ gdl_dock_item_grip_size_request (GtkWidget *widget, GtkRequisition child_requisition; GtkContainer *container; GdlDockItemGrip *grip; - gint layout_height; + gint layout_height = 0; g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget)); g_return_if_fail (requisition != NULL); @@ -492,11 +483,11 @@ gdl_dock_item_grip_size_request (GtkWidget *widget, container = GTK_CONTAINER (widget); grip = GDL_DOCK_ITEM_GRIP (widget); - requisition->width = container->border_width * 2 + ALIGN_BORDER; + requisition->width = container->border_width * 2/* + ALIGN_BORDER*/; requisition->height = container->border_width * 2; - ensure_title_and_icon_pixbuf (grip); - pango_layout_get_pixel_size (grip->_priv->title_layout, NULL, &layout_height); + if(grip->_priv->handle_shown) + requisition->width += DRAG_HANDLE_SIZE; gtk_widget_size_request (grip->_priv->close_button, &child_requisition); layout_height = MAX (layout_height, child_requisition.height); @@ -509,54 +500,12 @@ gdl_dock_item_grip_size_request (GtkWidget *widget, if (GTK_WIDGET_VISIBLE (grip->_priv->iconify_button)) { requisition->width += child_requisition.width; } - - requisition->height += layout_height; - - if (grip->_priv->icon_pixbuf) { - requisition->width += gdk_pixbuf_get_width (grip->_priv->icon_pixbuf) + 1; - } -} - -#define ELLIPSIS "..." - -static void -ellipsize_layout (PangoLayout *layout, gint width) -{ - PangoLayoutLine *line; - PangoLayout *ell; - gint h, w, ell_w, x; - GString *text; - - if (width <= 0) { - pango_layout_set_text (layout, "", -1); - return; - } - - pango_layout_get_pixel_size (layout, &w, &h); - if (w <= width) return; + + gtk_widget_size_request (grip->_priv->label, &child_requisition); + requisition->width += child_requisition.width; + layout_height = MAX (layout_height, child_requisition.height); - /* calculate ellipsis width */ - ell = pango_layout_copy (layout); - pango_layout_set_text (ell, ELLIPSIS, -1); - pango_layout_get_pixel_size (ell, &ell_w, NULL); - g_object_unref (ell); - - if (width < ell_w) { - /* not even ellipsis fits, so hide the text */ - pango_layout_set_text (layout, "", -1); - return; - } - - /* shrink total available width by the width of the ellipsis */ - width -= ell_w; - line = pango_layout_get_line (layout, 0); - text = g_string_new (pango_layout_get_text (layout)); - if (pango_layout_line_x_to_index (line, width * PANGO_SCALE, &x, NULL)) { - g_string_set_size (text, x); - g_string_append (text, ELLIPSIS); - pango_layout_set_text (layout, text->str, -1); - } - g_string_free (text, TRUE); + requisition->height += layout_height; } static void @@ -565,9 +514,10 @@ gdl_dock_item_grip_size_allocate (GtkWidget *widget, { GdlDockItemGrip *grip; GtkContainer *container; - GtkRequisition button_requisition; + GtkRequisition close_requisition = { 0, }; + GtkRequisition iconify_requisition = { 0, }; GtkAllocation child_allocation; - memset(&button_requisition, 0, sizeof(button_requisition)); + GdkRectangle label_area; g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (widget)); g_return_if_fail (allocation != NULL); @@ -577,59 +527,96 @@ gdl_dock_item_grip_size_allocate (GtkWidget *widget, GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation); + gtk_widget_size_request (grip->_priv->close_button, + &close_requisition); + gtk_widget_size_request (grip->_priv->iconify_button, + &iconify_requisition); + + /* Calculate the Minimum Width where buttons will fit */ + int min_width = close_requisition.width + iconify_requisition.width + + container->border_width * 2; + if(grip->_priv->handle_shown) + min_width += DRAG_HANDLE_SIZE; + const gboolean space_for_buttons = (allocation->width >= min_width); + + /* Set up the rolling child_allocation rectangle */ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x = allocation->x + container->border_width + ALIGN_BORDER; + child_allocation.x = container->border_width/* + ALIGN_BORDER*/; else - child_allocation.x = allocation->x + allocation->width - container->border_width; - child_allocation.y = allocation->y + container->border_width; + child_allocation.x = allocation->width - container->border_width; + child_allocation.y = container->border_width; + /* Layout Close Button */ if (GTK_WIDGET_VISIBLE (grip->_priv->close_button)) { - gtk_widget_size_request (grip->_priv->close_button, &button_requisition); - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= button_requisition.width; - - child_allocation.width = button_requisition.width; - child_allocation.height = button_requisition.height; + if(space_for_buttons) { + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) + child_allocation.x -= close_requisition.width; + + child_allocation.width = close_requisition.width; + child_allocation.height = close_requisition.height; + } else { + child_allocation.width = 0; + } gtk_widget_size_allocate (grip->_priv->close_button, &child_allocation); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += button_requisition.width; + child_allocation.x += close_requisition.width; } + /* Layout Iconify Button */ if (GTK_WIDGET_VISIBLE (grip->_priv->iconify_button)) { - gtk_widget_size_request (grip->_priv->iconify_button, &button_requisition); - if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) - child_allocation.x -= button_requisition.width; + if(space_for_buttons) { + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) + child_allocation.x -= iconify_requisition.width; - child_allocation.width = button_requisition.width; - child_allocation.height = button_requisition.height; + child_allocation.width = iconify_requisition.width; + child_allocation.height = iconify_requisition.height; + } else { + child_allocation.width = 0; + } gtk_widget_size_allocate (grip->_priv->iconify_button, &child_allocation); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - child_allocation.x += button_requisition.width; + child_allocation.x += iconify_requisition.width; } - if (grip->title_window) { - GdkRectangle area; + /* Layout the Grip Handle*/ + if (gtk_widget_get_direction (widget) != GTK_TEXT_DIR_RTL) { + child_allocation.width = child_allocation.x; + child_allocation.x = container->border_width/* + ALIGN_BORDER*/; - /* set layout text */ - ensure_title_and_icon_pixbuf (grip); - pango_layout_set_text (grip->_priv->title_layout, grip->_priv->title, -1); - - gdl_dock_item_grip_get_title_area (grip, &area); - - gdk_window_move_resize (grip->title_window, - area.x, area.y, area.width, area.height); - - if (grip->_priv->icon_pixbuf) - area.width -= gdk_pixbuf_get_width (grip->_priv->icon_pixbuf) + 1; + if(grip->_priv->handle_shown) { + child_allocation.x += DRAG_HANDLE_SIZE; + child_allocation.width -= DRAG_HANDLE_SIZE; + } + + } else { + child_allocation.width = allocation->width - + (child_allocation.x - allocation->x)/* - ALIGN_BORDER*/; - /* ellipsize title if it doesn't fit the title area */ - ellipsize_layout (grip->_priv->title_layout, area.width); + if(grip->_priv->handle_shown) + child_allocation.width -= DRAG_HANDLE_SIZE; + } + + if(child_allocation.width < 0) + child_allocation.width = 0; + + child_allocation.y = container->border_width; + child_allocation.height = allocation->height - container->border_width * 2; + if(grip->_priv->label) { + gtk_widget_size_allocate (grip->_priv->label, &child_allocation); + } + + if (grip->title_window) { + gdk_window_move_resize (grip->title_window, + allocation->x, + allocation->y, + allocation->width, + allocation->height); } } @@ -646,9 +633,8 @@ static void gdl_dock_item_grip_remove (GtkContainer *container, GtkWidget *widget) { - (void)container; (void)widget; - g_warning ("gtk_container_remove not implemented for GdlDockItemGrip"); + gdl_dock_item_grip_set_label (GDL_DOCK_ITEM_GRIP (container), NULL); } static void @@ -660,12 +646,17 @@ gdl_dock_item_grip_forall (GtkContainer *container, GdlDockItemGrip *grip; g_return_if_fail (GDL_IS_DOCK_ITEM_GRIP (container)); - grip = GDL_DOCK_ITEM_GRIP (container); + + if (grip->_priv) { + if(grip->_priv->label) { + (* callback) (grip->_priv->label, callback_data); + } - if (include_internals) { - (* callback) (grip->_priv->close_button, callback_data); - (* callback) (grip->_priv->iconify_button, callback_data); + if (include_internals) { + (* callback) (grip->_priv->close_button, callback_data); + (* callback) (grip->_priv->iconify_button, callback_data); + } } } @@ -713,9 +704,12 @@ gdl_dock_item_grip_class_init (GdlDockItemGripClass *klass) _("Dockitem which 'owns' this grip"), GDL_TYPE_DOCK_ITEM, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} - /* initialize stock images */ - gdl_stock_init (); +static void +gdl_dock_item_grip_showhide_handle (GdlDockItemGrip *grip) +{ + gtk_widget_queue_resize (GTK_WIDGET (grip)); } /* ----- Public interface ----- */ @@ -735,3 +729,61 @@ gdl_dock_item_grip_new (GdlDockItem *item) return GTK_WIDGET (grip); } + +/** + * gdl_dock_item_grip_set_label: + * @grip: The grip that will get it's label widget set. + * @label: The widget that will become the label. + * + * Replaces the current label widget with another widget. + **/ +void +gdl_dock_item_grip_set_label (GdlDockItemGrip *grip, + GtkWidget *label) +{ + g_return_if_fail (grip != NULL); + + if (grip->_priv->label) { + gtk_widget_unparent(grip->_priv->label); + g_object_unref (grip->_priv->label); + grip->_priv->label = NULL; + } + + if (label) { + g_object_ref (label); + gtk_widget_set_parent (label, GTK_WIDGET (grip)); + gtk_widget_show (label); + grip->_priv->label = label; + } +} +/** + * gdl_dock_item_grip_hide_handle: + * @item: The dock item grip to hide the handle of. + * + * This function hides the dock item's grip widget handle hatching. + **/ +void +gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip) +{ + g_return_if_fail (grip != NULL); + if (grip->_priv->handle_shown) { + grip->_priv->handle_shown = FALSE; + gdl_dock_item_grip_showhide_handle (grip); + }; +} + +/** + * gdl_dock_item_grip_show_handle: + * @grip: The dock item grip to show the handle of. + * + * This function shows the dock item's grip widget handle hatching. + **/ +void +gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip) +{ + g_return_if_fail (grip != NULL); + if (!grip->_priv->handle_shown) { + grip->_priv->handle_shown = TRUE; + gdl_dock_item_grip_showhide_handle (grip); + }; +} diff --git a/src/libgdl/gdl-dock-item-grip.h b/src/libgdl/gdl-dock-item-grip.h index 4dfdd7ab3..a44ef91fb 100644 --- a/src/libgdl/gdl-dock-item-grip.h +++ b/src/libgdl/gdl-dock-item-grip.h @@ -1,13 +1,30 @@ /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 4; tab-width: 8 -*- */ -/** +/* * gdl-dock-item-grip.h - * - * Based on bonobo-dock-item-grip. Original copyright notice follows. * - * Author: - * Michael Meeks + * Author: Michael Meeks Copyright (C) 2002 Sun Microsystems, Inc. * - * Copyright (C) 2002 Sun Microsystems, Inc. + * Based on BonoboDockItemGrip. Original copyright notice follows. + * + * Copyright (C) 1998 Ettore Perazzoli + * Copyright (C) 1998 Elliot Lee + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. */ #ifndef _GDL_DOCK_ITEM_GRIP_H_ @@ -50,6 +67,10 @@ struct _GdlDockItemGripClass { GType gdl_dock_item_grip_get_type (void); GtkWidget *gdl_dock_item_grip_new (GdlDockItem *item); +void gdl_dock_item_grip_set_label (GdlDockItemGrip *grip, + GtkWidget *label); +void gdl_dock_item_grip_hide_handle (GdlDockItemGrip *grip); +void gdl_dock_item_grip_show_handle (GdlDockItemGrip *grip); G_END_DECLS diff --git a/src/libgdl/gdl-dock-item.c b/src/libgdl/gdl-dock-item.c index 86f729c61..0c0d765df 100644 --- a/src/libgdl/gdl-dock-item.c +++ b/src/libgdl/gdl-dock-item.c @@ -163,6 +163,7 @@ enum { DOCK_DRAG_BEGIN, DOCK_DRAG_MOTION, DOCK_DRAG_END, + SELECTED, MOVE_FOCUS_CHILD, LAST_SIGNAL }; @@ -407,6 +408,22 @@ gdl_dock_item_class_init (GdlDockItemClass *klass) 1, G_TYPE_BOOLEAN); + /** + * GdlDockItem::selected: + * + * Signals that this dock has been selected from a switcher. + */ + gdl_dock_item_signals [SELECTED] = + g_signal_new ("selected", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, + 0, + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + gdl_dock_item_signals [MOVE_FOCUS_CHILD] = g_signal_new ("move_focus_child", G_TYPE_FROM_CLASS (klass), @@ -1924,6 +1941,23 @@ gdl_dock_item_set_tablabel (GdlDockItem *item, } } +/** + * gdl_dock_item_get_grip: + * @item: The dock item from which to to get the grip of. + * + * This function returns the dock item's grip label widget. + * + * Returns: Returns the current label widget. + **/ +GtkWidget * +gdl_dock_item_get_grip(GdlDockItem *item) +{ + g_return_if_fail (item != NULL); + g_return_val_if_fail (GDL_IS_DOCK_ITEM (item), NULL); + + return item->_priv->grip; +} + /** * gdl_dock_item_hide_grip: * @item: The dock item to hide the grip of. @@ -1957,6 +1991,19 @@ gdl_dock_item_show_grip (GdlDockItem *item) }; } +/** + * gdl_dock_item_notify_selected: + * @item: the dock item to emit a selected signal on. + * + * This function emits the selected signal. It is to be used by #GdlSwitcher + * to let clients know that this item has been switched to. + **/ +void +gdl_dock_item_notify_selected (GdlDockItem *item) +{ + g_signal_emit (item, gdl_dock_item_signals [SELECTED], 0); +} + /* convenient function (and to preserve source compat) */ /** * gdl_dock_item_bind: diff --git a/src/libgdl/gdl-dock-item.h b/src/libgdl/gdl-dock-item.h index 6c0029d13..d97fdf6fd 100644 --- a/src/libgdl/gdl-dock-item.h +++ b/src/libgdl/gdl-dock-item.h @@ -93,17 +93,16 @@ struct _GdlDockItemClass { gboolean has_grip; /* virtuals */ - void (* dock_drag_begin) (GdlDockItem *item); - void (* dock_drag_motion) (GdlDockItem *item, - gint x, - gint y); - void (* dock_drag_end) (GdlDockItem *item, - gboolean cancelled); + void (* dock_drag_begin) (GdlDockItem *item); + void (* dock_drag_motion) (GdlDockItem *item, + gint x, + gint y); + void (* dock_drag_end) (GdlDockItem *item, + gboolean cancelled); void (* move_focus_child) (GdlDockItem *item, GtkDirectionType direction); - - void (* set_orientation) (GdlDockItem *item, - GtkOrientation orientation); + void (* set_orientation) (GdlDockItem *item, + GtkOrientation orientation); }; /* additional macros */ @@ -163,8 +162,10 @@ void gdl_dock_item_set_orientation (GdlDockItem *item, GtkWidget *gdl_dock_item_get_tablabel (GdlDockItem *item); void gdl_dock_item_set_tablabel (GdlDockItem *item, GtkWidget *tablabel); +GtkWidget *gdl_dock_item_get_grip (GdlDockItem *item); void gdl_dock_item_hide_grip (GdlDockItem *item); void gdl_dock_item_show_grip (GdlDockItem *item); +void gdl_dock_item_notify_selected (GdlDockItem *item); /* bind and unbind items to a dock */ void gdl_dock_item_bind (GdlDockItem *item, diff --git a/src/libgdl/gdl-dock-layout.c b/src/libgdl/gdl-dock-layout.c index a0f0a3e3a..7c5279507 100644 --- a/src/libgdl/gdl-dock-layout.c +++ b/src/libgdl/gdl-dock-layout.c @@ -28,7 +28,6 @@ #include #include #include -#include #include "gdl-dock-layout.h" #include "gdl-tools.h" @@ -48,7 +47,7 @@ enum { #define LAYOUT_ELEMENT_NAME "layout" #define NAME_ATTRIBUTE_NAME "name" -#define LAYOUT_GLADE_FILE "layout.glade" +#define LAYOUT_UI_FILE "layout.ui" enum { COLUMN_NAME, @@ -548,20 +547,23 @@ master_locked_notify_cb (GdlDockMaster *master, } } -static GladeXML * -load_interface (const gchar *top_widget) +static GtkBuilder * +load_interface () { - GladeXML *gui; + GtkBuilder *gui; gchar *gui_file; + GError* error = NULL; /* load ui */ - gui_file = g_build_filename (GDL_GLADEDIR, LAYOUT_GLADE_FILE, NULL); - gui = glade_xml_new (gui_file, top_widget, GETTEXT_PACKAGE); + gui_file = g_build_filename (GDL_UIDIR, LAYOUT_UI_FILE, NULL); + gui = gtk_builder_new(); + gtk_builder_add_from_file (gui, gui_file, &error); g_free (gui_file); - if (!gui) { - /* FIXME: pop up an error dialog */ + if (error) { g_warning (_("Could not load layout user interface file '%s'"), - LAYOUT_GLADE_FILE); + LAYOUT_UI_FILE); + g_object_unref (gui); + g_error_free (error); return NULL; }; return gui; @@ -570,8 +572,8 @@ load_interface (const gchar *top_widget) static GtkWidget * gdl_dock_layout_construct_items_ui (GdlDockLayout *layout) { - GladeXML *gui; - GtkWidget *container; + GtkBuilder *gui; + GtkWidget *dialog; GtkWidget *items_list; GtkCellRenderer *renderer; GtkTreeViewColumn *column; @@ -579,23 +581,23 @@ gdl_dock_layout_construct_items_ui (GdlDockLayout *layout) GdlDockLayoutUIData *ui_data; /* load the interface if it wasn't provided */ - gui = load_interface ("items_vbox"); + gui = load_interface (); if (!gui) return NULL; /* get the container */ - container = glade_xml_get_widget (gui, "items_vbox"); + dialog = GTK_WIDGET (gtk_builder_get_object (gui, "layout_dialog")); ui_data = g_new0 (GdlDockLayoutUIData, 1); ui_data->layout = layout; g_object_add_weak_pointer (G_OBJECT (layout), (gpointer *) &ui_data->layout); - g_object_set_data (G_OBJECT (container), "ui_data", ui_data); + g_object_set_data (G_OBJECT (dialog), "ui_data", ui_data); /* get ui widget references */ - ui_data->locked_check = glade_xml_get_widget (gui, "locked_check"); - items_list = glade_xml_get_widget (gui, "items_list"); + ui_data->locked_check = GTK_WIDGET (gtk_builder_get_object (gui, "locked_check")); + items_list = GTK_WIDGET (gtk_builder_get_object(gui, "items_list")); /* locked check connections */ g_signal_connect (ui_data->locked_check, "toggled", @@ -629,11 +631,11 @@ gdl_dock_layout_construct_items_ui (GdlDockLayout *layout) gtk_tree_view_append_column (GTK_TREE_VIEW (items_list), column); /* connect signals */ - g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); + g_signal_connect (dialog, "destroy", (GCallback) layout_ui_destroyed, NULL); g_object_unref (gui); - return container; + return dialog; } static void @@ -671,22 +673,24 @@ cell_edited_cb (GtkCellRendererText *cell, static GtkWidget * gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) { - GladeXML *gui; + GtkBuilder *gui; GtkWidget *container; GtkWidget *layouts_list; GtkCellRenderer *renderer; GtkTreeViewColumn *column; + GtkWidget *load_button; + GtkWidget *delete_button; GdlDockLayoutUIData *ui_data; /* load the interface if it wasn't provided */ - gui = load_interface ("layouts_vbox"); + gui = load_interface (); if (!gui) return NULL; /* get the container */ - container = glade_xml_get_widget (gui, "layouts_vbox"); + container = GTK_WIDGET (gtk_builder_get_object(gui, "layouts_vbox")); ui_data = g_new0 (GdlDockLayoutUIData, 1); ui_data->layout = layout; @@ -695,7 +699,7 @@ gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) g_object_set_data (G_OBJECT (container), "ui-data", ui_data); /* get ui widget references */ - layouts_list = glade_xml_get_widget (gui, "layouts_list"); + layouts_list = GTK_WIDGET (gtk_builder_get_object(gui, "layouts_list")); /* set models */ gtk_tree_view_set_model (GTK_TREE_VIEW (layouts_list), @@ -714,10 +718,12 @@ gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) ui_data->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (layouts_list)); /* connect signals */ - glade_xml_signal_connect_data (gui, "on_load_button_clicked", - G_CALLBACK (load_layout_cb), ui_data); - glade_xml_signal_connect_data (gui, "on_delete_button_clicked", - G_CALLBACK (delete_layout_cb), ui_data); + load_button = GTK_WIDGET (gtk_builder_get_object(gui, "load_button")); + delete_button = GTK_WIDGET (gtk_builder_get_object(gui, "delete_button")); + + g_signal_connect (load_button, "clicked", (GCallback) load_layout_cb, ui_data); + g_signal_connect (delete_button, "clicked", (GCallback) delete_layout_cb, ui_data); + g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); @@ -726,31 +732,6 @@ gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) return container; } -static GtkWidget * -gdl_dock_layout_construct_ui (GdlDockLayout *layout) -{ - GtkWidget *container, *child; - - container = gtk_notebook_new (); - gtk_widget_show (container); - - child = gdl_dock_layout_construct_items_ui (layout); - if (child) - gtk_notebook_append_page (GTK_NOTEBOOK (container), - child, - gtk_label_new (_("Dock items"))); - - child = gdl_dock_layout_construct_layouts_ui (layout); - if (child) - gtk_notebook_append_page (GTK_NOTEBOOK (container), - child, - gtk_label_new (_("Saved layouts"))); - - gtk_notebook_set_current_page (GTK_NOTEBOOK (container), 0); - - return container; -} - /* ----- Save & Load layout functions --------- */ #define GDL_DOCK_PARAM_CONSTRUCTION(p) \ @@ -1095,6 +1076,13 @@ gdl_dock_layout_save (GdlDockMaster *master, /* ----- Public interface ----- */ +/** + * gdl_dock_layout_new: + * @dock: The dock item. + * Creates a new #GdlDockLayout + * + * Returns: New #GdlDockLayout item. + */ GdlDockLayout * gdl_dock_layout_new (GdlDock *dock) { @@ -1133,6 +1121,15 @@ gdl_dock_layout_layout_changed_cb (GdlDockMaster *master, } } + +/** + * gdl_dock_layout_attach: + * @layout: The layout item + * @master: The master item to which the layout will be attached + * + * Attach the @layout to the @master and delete the reference to + * the master that the layout attached previously + */ void gdl_dock_layout_attach (GdlDockLayout *layout, GdlDockMaster *master) @@ -1159,6 +1156,17 @@ gdl_dock_layout_attach (GdlDockLayout *layout, update_items_model (layout); } +/** +* gdl_dock_layout_load_layout: +* @layout: The dock item. +* @name: The name of the layout to load. +* +* Loads the layout with the given name to the memory. +* This will set #GdlDockLayout:dirty to %TRUE. +* +* See also gdl_dock_layout_load_from_file() +* Returns: %TRUE if layout successfully loaded else %FALSE +*/ gboolean gdl_dock_layout_load_layout (GdlDockLayout *layout, const gchar *name) @@ -1188,6 +1196,17 @@ gdl_dock_layout_load_layout (GdlDockLayout *layout, return FALSE; } +/** +* gdl_dock_layout_save_layout: +* @layout: The dock item. +* @name: The name of the layout to save. +* +* Saves the @layout with the given name to the memory. +* This will set #GdlDockLayout:dirty to %TRUE. +* +* See also gdl_dock_layout_save_to_file(). +*/ + void gdl_dock_layout_save_layout (GdlDockLayout *layout, const gchar *name) @@ -1224,6 +1243,15 @@ gdl_dock_layout_save_layout (GdlDockLayout *layout, g_object_notify (G_OBJECT (layout), "dirty"); } +/** +* gdl_dock_layout_delete_layout: +* @layout: The dock item. +* @name: The name of the layout to delete. +* +* Deletes the layout with the given name from the memory. +* This will set #GdlDockLayout:dirty to %TRUE. +*/ + void gdl_dock_layout_delete_layout (GdlDockLayout *layout, const gchar *name) @@ -1245,10 +1273,17 @@ gdl_dock_layout_delete_layout (GdlDockLayout *layout, } } +/** +* gdl_dock_layout_run_manager: +* @layout: The dock item. +* +* Runs the layout manager. +*/ + void gdl_dock_layout_run_manager (GdlDockLayout *layout) { - GtkWidget *dialog, *container; + GtkWidget *dialog; GtkWidget *parent = NULL; g_return_if_fail (layout != NULL); @@ -1257,28 +1292,24 @@ gdl_dock_layout_run_manager (GdlDockLayout *layout) /* not attached to a dock yet */ return; - container = gdl_dock_layout_construct_ui (layout); - if (!container) - return; - - parent = GTK_WIDGET (gdl_dock_master_get_controller (layout->master)); - if (parent) - parent = gtk_widget_get_toplevel (parent); - - dialog = gtk_dialog_new_with_buttons (_("Layout managment"), - parent ? GTK_WINDOW (parent) : NULL, - GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, - NULL); - - gtk_window_set_default_size (GTK_WINDOW (dialog), -1, 300); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), container); + dialog = gdl_dock_layout_construct_items_ui (layout); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } +/** +* gdl_dock_layout_load_from_file: +* @layout: The layout item. +* @filename: The name of the file to load. +* +* Loads the layout from file with the given @filename. +* This will set #GdlDockLayout:dirty to %FALSE. +* +* Returns: %TRUE if @layout successfully loaded else %FALSE +*/ + gboolean gdl_dock_layout_load_from_file (GdlDockLayout *layout, const gchar *filename) @@ -1311,6 +1342,16 @@ gdl_dock_layout_load_from_file (GdlDockLayout *layout, return retval; } +/** + * gdl_dock_layout_save_to_file: + * @layout: The layout item. + * @filename: Name of the file we want to save in layout + * + * This function saves the current layout in XML format to + * the file with the given @filename. + * + * Returns: %TRUE if @layout successfuly save to the file, otherwise %FALSE. + */ gboolean gdl_dock_layout_save_to_file (GdlDockLayout *layout, const gchar *filename) @@ -1340,6 +1381,13 @@ gdl_dock_layout_save_to_file (GdlDockLayout *layout, return retval; } +/** + * gdl_dock_layout_is_dirty: + * @layout: The layout item. + * + * Checks whether the XML tree in memory is different from the file where the layout was saved. + * Returns: %TRUE is the layout in the memory is different from the file, else %FALSE. + */ gboolean gdl_dock_layout_is_dirty (GdlDockLayout *layout) { @@ -1377,28 +1425,6 @@ gdl_dock_layout_get_layouts (GdlDockLayout *layout, return retval; } -GtkWidget * -gdl_dock_layout_get_ui (GdlDockLayout *layout) -{ - GtkWidget *ui; - - g_return_val_if_fail (layout != NULL, NULL); - ui = gdl_dock_layout_construct_ui (layout); - - return ui; -} - -GtkWidget * -gdl_dock_layout_get_items_ui (GdlDockLayout *layout) -{ - GtkWidget *ui; - - g_return_val_if_fail (layout != NULL, NULL); - ui = gdl_dock_layout_construct_items_ui (layout); - - return ui; -} - GtkWidget * gdl_dock_layout_get_layouts_ui (GdlDockLayout *layout) { diff --git a/src/libgdl/gdl-dock-master.c b/src/libgdl/gdl-dock-master.c index 78cbf69ec..57d0618ec 100644 --- a/src/libgdl/gdl-dock-master.c +++ b/src/libgdl/gdl-dock-master.c @@ -31,6 +31,8 @@ #include "gdl-dock-master.h" #include "gdl-dock.h" #include "gdl-dock-item.h" +#include "gdl-dock-notebook.h" +#include "gdl-switcher.h" #include "libgdlmarshal.h" #include "libgdltypebuiltins.h" #ifdef WIN32 diff --git a/src/libgdl/gdl-dock-master.h b/src/libgdl/gdl-dock-master.h index 3268e68b5..266ca7ee4 100644 --- a/src/libgdl/gdl-dock-master.h +++ b/src/libgdl/gdl-dock-master.h @@ -44,6 +44,15 @@ typedef struct _GdlDockMaster GdlDockMaster; typedef struct _GdlDockMasterClass GdlDockMasterClass; typedef struct _GdlDockMasterPrivate GdlDockMasterPrivate; +typedef enum { + GDL_SWITCHER_STYLE_TEXT, + GDL_SWITCHER_STYLE_ICON, + GDL_SWITCHER_STYLE_BOTH, + GDL_SWITCHER_STYLE_TOOLBAR, + GDL_SWITCHER_STYLE_TABS, + GDL_SWITCHER_STYLE_NONE +} GdlSwitcherStyle; + struct _GdlDockMaster { GObject object; diff --git a/src/libgdl/gdl-dock-notebook.c b/src/libgdl/gdl-dock-notebook.c index f6e0aeeef..3db3fab3f 100644 --- a/src/libgdl/gdl-dock-notebook.c +++ b/src/libgdl/gdl-dock-notebook.c @@ -270,7 +270,7 @@ gdl_dock_notebook_switch_page_cb (GtkNotebook *nb, { GdlDockNotebook *notebook; GtkWidget *tablabel; - (void)page_num; + GdlDockItem *item; notebook = GDL_DOCK_NOTEBOOK (data); @@ -293,6 +293,10 @@ gdl_dock_notebook_switch_page_cb (GtkNotebook *nb, GDL_DOCK_OBJECT (notebook)->master) g_signal_emit_by_name (GDL_DOCK_OBJECT (notebook)->master, "layout-changed"); + + /* Signal that a new dock item has been selected */ + item = GDL_DOCK_ITEM (gtk_notebook_get_nth_page (nb, page_num)); + gdl_dock_item_notify_selected (item); } static void diff --git a/src/libgdl/gdl-dock-object.h b/src/libgdl/gdl-dock-object.h index 6ac36a44c..d1c27ffbd 100644 --- a/src/libgdl/gdl-dock-object.h +++ b/src/libgdl/gdl-dock-object.h @@ -221,7 +221,7 @@ GType gdl_dock_object_set_type_for_nick (const gchar *nick, __PRETTY_FUNCTION__, \ G_OBJECT_TYPE_NAME (object), object, \ G_OBJECT (object)->ref_count, \ - (GTK_IS_OBJECT (object) && GTK_OBJECT_FLOATING (object)) ? "(float)" : "", \ + (GTK_IS_OBJECT (object) && g_object_is_floating (object)) ? "(float)" : "", \ GDL_IS_DOCK_OBJECT (object) ? GDL_DOCK_OBJECT (object)->freeze_count : -1, \ ##args); } G_STMT_END diff --git a/src/libgdl/gdl-dock-paned.c b/src/libgdl/gdl-dock-paned.c index 5d0ac17ed..141770aa2 100644 --- a/src/libgdl/gdl-dock-paned.c +++ b/src/libgdl/gdl-dock-paned.c @@ -710,6 +710,7 @@ gdl_dock_paned_dock (GdlDockObject *object, } else { gdl_dock_item_show_grip (GDL_DOCK_ITEM (requestor)); + gtk_widget_show (GTK_WIDGET (requestor)); GDL_DOCK_OBJECT_SET_FLAGS (requestor, GDL_DOCK_ATTACHED); } } diff --git a/src/libgdl/gdl-dock-placeholder.c b/src/libgdl/gdl-dock-placeholder.c index 33934e2e0..7a86ebe81 100644 --- a/src/libgdl/gdl-dock-placeholder.c +++ b/src/libgdl/gdl-dock-placeholder.c @@ -30,6 +30,7 @@ #include "gdl-tools.h" #include "gdl-dock-placeholder.h" #include "gdl-dock-item.h" +#include "gdl-dock-paned.h" #include "gdl-dock-master.h" #include "libgdltypebuiltins.h" @@ -494,7 +495,7 @@ gdl_dock_placeholder_dock (GdlDockObject *object, GdlDockObject *toplevel; if (!gdl_dock_object_is_bound (GDL_DOCK_OBJECT (ph))) { - g_warning ("%s",_("Attempt to dock a dock object to an unbound placeholder")); + g_warning ("%s", _("Attempt to dock a dock object to an unbound placeholder")); return; } @@ -543,7 +544,7 @@ gdl_dock_placeholder_present (GdlDockObject *object, /* ----- Public interface ----- */ GtkWidget * -gdl_dock_placeholder_new (gchar *name, +gdl_dock_placeholder_new (const gchar *name, GdlDockObject *object, GdlDockPlacement position, gboolean sticky) diff --git a/src/libgdl/gdl-dock-placeholder.h b/src/libgdl/gdl-dock-placeholder.h index aeb55da67..c7e57e204 100644 --- a/src/libgdl/gdl-dock-placeholder.h +++ b/src/libgdl/gdl-dock-placeholder.h @@ -55,7 +55,7 @@ struct _GdlDockPlaceholderClass { GType gdl_dock_placeholder_get_type (void); -GtkWidget *gdl_dock_placeholder_new (gchar *name, +GtkWidget *gdl_dock_placeholder_new (const gchar *name, GdlDockObject *object, GdlDockPlacement position, gboolean sticky); diff --git a/src/libgdl/gdl-dock.c b/src/libgdl/gdl-dock.c index 3b0dc4e6b..47a4f5b3d 100644 --- a/src/libgdl/gdl-dock.c +++ b/src/libgdl/gdl-dock.c @@ -349,21 +349,6 @@ gdl_dock_constructor (GType type, g_signal_connect (dock, "notify::long-name", (GCallback) gdl_dock_notify_cb, NULL); - /* set transient for the first dock if that is a non-floating dock */ - controller = gdl_dock_master_get_controller (master); - if (controller && GDL_IS_DOCK (controller)) { - gboolean first_is_floating; - g_object_get (controller, "floating", &first_is_floating, NULL); - if (!first_is_floating) { - GtkWidget *toplevel = - gtk_widget_get_toplevel (GTK_WIDGET (controller)); - - if (GTK_IS_WINDOW (toplevel)) - gtk_window_set_transient_for (GTK_WINDOW (dock->_priv->window), - GTK_WINDOW (toplevel)); - } - } - gtk_container_add (GTK_CONTAINER (dock->_priv->window), GTK_WIDGET (dock)); g_signal_connect (dock->_priv->window, "delete_event", diff --git a/src/libgdl/gdl-stock.c b/src/libgdl/gdl-stock.c deleted file mode 100644 index 4cb7bf929..000000000 --- a/src/libgdl/gdl-stock.c +++ /dev/null @@ -1,126 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * gdl-stock.c - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include "gdl-stock.h" -#include "gdl-stock-icons.h" - -static GtkIconFactory *gdl_stock_factory = NULL; - -static struct { - const gchar *stock_id; - const guint8 *icon_data; - const guint data_size; -} -gdl_icons[] = -{ - { GDL_STOCK_CLOSE, stock_close_icon, sizeof (stock_close_icon) }, - { GDL_STOCK_MENU_LEFT, stock_menu_left_icon, sizeof (stock_menu_left_icon) }, - { GDL_STOCK_MENU_RIGHT, stock_menu_right_icon, sizeof (stock_menu_right_icon) } -}; - -static void -icon_set_from_data (GtkIconSet *set, - const guint8 *icon_data, - const guint data_size, - GtkIconSize size, - gboolean fallback) -{ - GtkIconSource *source; - GdkPixbuf *pixbuf; - GError *err = NULL; - - source = gtk_icon_source_new (); - - gtk_icon_source_set_size (source, size); - gtk_icon_source_set_size_wildcarded (source, FALSE); - - pixbuf = gdk_pixbuf_new_from_inline (data_size, icon_data, FALSE, &err); - if (err) { - g_warning ("%s", err->message); - g_error_free (err); - err = NULL; - g_object_unref (source); - return; - } - - gtk_icon_source_set_pixbuf (source, pixbuf); - - g_object_unref (pixbuf); - - gtk_icon_set_add_source (set, source); - - if (fallback) { - gtk_icon_source_set_size_wildcarded (source, TRUE); - gtk_icon_set_add_source (set, source); - } - - gtk_icon_source_free (source); -} - -static void -add_icon (GtkIconFactory *factory, - const gchar *stock_id, - const guint8 *icon_data, - const guint data_size) -{ - GtkIconSet *set; - gboolean fallback = FALSE; - - set = gtk_icon_factory_lookup (factory, stock_id); - - if (!set) { - set = gtk_icon_set_new (); - gtk_icon_factory_add (factory, stock_id, set); - gtk_icon_set_unref (set); - - fallback = TRUE; - } - - icon_set_from_data (set, icon_data, data_size, GTK_ICON_SIZE_MENU, fallback); -} - -void -gdl_stock_init (void) -{ - static gboolean initialized = FALSE; - gint i; - - if (initialized) - return; - - gdl_stock_factory = gtk_icon_factory_new (); - - for (i = 0; i < G_N_ELEMENTS (gdl_icons); i++) { - add_icon (gdl_stock_factory, - gdl_icons[i].stock_id, - gdl_icons[i].icon_data, - gdl_icons[i].data_size); - } - - gtk_icon_factory_add_default (gdl_stock_factory); - - initialized = TRUE; -} diff --git a/src/libgdl/gdl-stock.h b/src/libgdl/gdl-stock.h deleted file mode 100644 index cb6f7abb9..000000000 --- a/src/libgdl/gdl-stock.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * gdl-stock.h - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __GDL_STOCK_H__ -#define __GDL_STOCK_H__ - -#include // G_BEGIN_DECLS - -G_BEGIN_DECLS - -#define GDL_STOCK_CLOSE "gdl-close" -#define GDL_STOCK_MENU_LEFT "gdl-menu-left" -#define GDL_STOCK_MENU_RIGHT "gdl-menu-right" - -void gdl_stock_init (void); - -G_END_DECLS - -#endif /* __GDL_STOCK_H__ */ diff --git a/src/libgdl/gdl-switcher.c b/src/libgdl/gdl-switcher.c index fea3218ae..65013e390 100644 --- a/src/libgdl/gdl-switcher.c +++ b/src/libgdl/gdl-switcher.c @@ -4,20 +4,22 @@ * Copyright (C) 2003 Ettore Perazzoli, * 2007 Naba Kumar * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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, + * 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 - * General Public License for more details. + * Library 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 + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * + * * Copied and adapted from ESidebar.[ch] from evolution * * Authors: Ettore Perazzoli @@ -36,10 +38,6 @@ #include -#if HAVE_GNOME -#include -#endif - static void gdl_switcher_set_property (GObject *object, guint prop_id, const GValue *value, @@ -608,12 +606,6 @@ static void gdl_switcher_notify_cb (GObject *g_object, GParamSpec *pspec, GdlSwitcher *switcher) { - gboolean show_tabs; - (void)g_object; - (void)pspec; - g_return_if_fail (switcher != NULL && GDL_IS_SWITCHER (switcher)); - show_tabs = gtk_notebook_get_show_tabs (GTK_NOTEBOOK (switcher)); - gdl_switcher_set_show_buttons (switcher, !show_tabs); } static void @@ -879,179 +871,87 @@ gdl_switcher_insert_page (GdlSwitcher *switcher, GtkWidget *page, } static void -set_switcher_style_internal (GdlSwitcher *switcher, - GdlSwitcherStyle switcher_style ) +set_switcher_style_toolbar (GdlSwitcher *switcher, + GdlSwitcherStyle switcher_style) { GSList *p; - if (switcher_style == GDL_SWITCHER_STYLE_TABS && - switcher->priv->show == FALSE) + if (switcher_style == GDL_SWITCHER_STYLE_NONE + || switcher_style == GDL_SWITCHER_STYLE_TABS) return; - if (switcher_style == GDL_SWITCHER_STYLE_TABS) - { - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), TRUE); - return; - } - - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); - + if (switcher_style == GDL_SWITCHER_STYLE_TOOLBAR) + switcher_style = GDL_SWITCHER_STYLE_BOTH; + if (switcher_style == INTERNAL_MODE (switcher)) return; - + + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); + for (p = switcher->priv->buttons; p != NULL; p = p->next) { Button *button = p->data; gtk_container_remove (GTK_CONTAINER (button->hbox), button->arrow); + + if (gtk_widget_get_parent (button->icon)) + gtk_container_remove (GTK_CONTAINER (button->hbox), button->icon); + if (gtk_widget_get_parent (button->label)) + gtk_container_remove (GTK_CONTAINER (button->hbox), button->label); + switch (switcher_style) { case GDL_SWITCHER_STYLE_TEXT: - gtk_container_remove (GTK_CONTAINER (button->hbox), button->icon); - if (INTERNAL_MODE (switcher) - == GDL_SWITCHER_STYLE_ICON) { - gtk_box_pack_start (GTK_BOX (button->hbox), button->label, - TRUE, TRUE, 0); - gtk_widget_show (button->label); - } + gtk_box_pack_start (GTK_BOX (button->hbox), button->label, + TRUE, TRUE, 0); + gtk_widget_show (button->label); break; + case GDL_SWITCHER_STYLE_ICON: - gtk_container_remove(GTK_CONTAINER (button->hbox), button->label); - if (INTERNAL_MODE (switcher) - == GDL_SWITCHER_STYLE_TEXT) { - gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, - TRUE, TRUE, 0); - gtk_widget_show (button->icon); - } else - gtk_container_child_set (GTK_CONTAINER (button->hbox), - button->icon, "expand", TRUE, NULL); + gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, + TRUE, TRUE, 0); + gtk_widget_show (button->icon); break; - case GDL_SWITCHER_STYLE_BOTH: - if (INTERNAL_MODE (switcher) - == GDL_SWITCHER_STYLE_TEXT) { - gtk_container_remove (GTK_CONTAINER (button->hbox), - button->label); - gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, - FALSE, TRUE, 0); - gtk_widget_show (button->icon); - } else { - gtk_container_child_set (GTK_CONTAINER (button->hbox), - button->icon, "expand", FALSE, NULL); - } - gtk_box_pack_start (GTK_BOX (button->hbox), button->label, TRUE, - TRUE, 0); + case GDL_SWITCHER_STYLE_BOTH: + gtk_box_pack_start (GTK_BOX (button->hbox), button->icon, + FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (button->hbox), button->label, + TRUE, TRUE, 0); + gtk_widget_show (button->icon); gtk_widget_show (button->label); break; + default: break; } - gtk_box_pack_start (GTK_BOX (button->hbox), button->arrow, FALSE, - FALSE, 0); - } -} - -#if HAVE_GNOME -static GConfEnumStringPair toolbar_styles[] = { - { GDL_SWITCHER_STYLE_TEXT, "text" }, - { GDL_SWITCHER_STYLE_ICON, "icons" }, - { GDL_SWITCHER_STYLE_BOTH, "both" }, - { GDL_SWITCHER_STYLE_BOTH, "both-horiz" }, - { GDL_SWITCHER_STYLE_BOTH, "both_horiz" }, - { -1, NULL } -}; - -static void -style_changed_notify (GConfClient *gconf, guint id, GConfEntry *entry, - void *data) -{ - GdlSwitcher *switcher = data; - char *val; - int switcher_style; - - val = gconf_client_get_string (gconf, - "/desktop/gnome/interface/toolbar_style", - NULL); - if (val == NULL || !gconf_string_to_enum (toolbar_styles, val, - &switcher_style)) - switcher_style = GDL_SWITCHER_STYLE_BOTH; - g_free(val); - set_switcher_style_internal (GDL_SWITCHER (switcher), switcher_style); - switcher->priv->toolbar_style = switcher_style; + gtk_box_pack_start (GTK_BOX (button->hbox), button->arrow, + FALSE, FALSE, 0); + } - gtk_widget_queue_resize (GTK_WIDGET (switcher)); + gdl_switcher_set_show_buttons (switcher, TRUE); } static void gdl_switcher_set_style (GdlSwitcher *switcher, GdlSwitcherStyle switcher_style) { - GConfClient *gconf_client = gconf_client_get_default (); - - if (switcher_style == GDL_SWITCHER_STYLE_TABS && - switcher->priv->show == FALSE) - return; - - if (switcher->priv->switcher_style == switcher_style && - switcher->priv->show == TRUE) + if (switcher->priv->switcher_style == switcher_style) return; - if (switcher->priv->switcher_style == GDL_SWITCHER_STYLE_TOOLBAR) { - if (switcher->priv->style_changed_id) { - gconf_client_notify_remove (gconf_client, - switcher->priv->style_changed_id); - switcher->priv->style_changed_id = 0; - } + if (switcher_style == GDL_SWITCHER_STYLE_NONE) { + gdl_switcher_set_show_buttons (switcher, FALSE); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), FALSE); } - - if (switcher_style != GDL_SWITCHER_STYLE_TOOLBAR) { - set_switcher_style_internal (switcher, switcher_style); - - gtk_widget_queue_resize (GTK_WIDGET (switcher)); - } else { - /* This is a little bit tricky, toolbar style is more - * of a meta-style where the actual style is dictated by - * the gnome toolbar setting, so that is why we have - * the is_toolbar_style bool - it tracks the toolbar - * style while the switcher_style member is the actual look and - * feel */ - switcher->priv->style_changed_id = - gconf_client_notify_add (gconf_client, - "/desktop/gnome/interface/toolbar_style", - style_changed_notify, switcher, - NULL, NULL); - style_changed_notify (gconf_client, 0, NULL, switcher); + else if (switcher_style == GDL_SWITCHER_STYLE_TABS) { + gdl_switcher_set_show_buttons (switcher, FALSE); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (switcher), TRUE); } - - g_object_unref (gconf_client); - - if (switcher_style != GDL_SWITCHER_STYLE_TABS) - switcher->priv->switcher_style = switcher_style; -} - -#else /* HAVE_GNOME */ - -static void -gdl_switcher_set_style (GdlSwitcher *switcher, GdlSwitcherStyle switcher_style) -{ - if (switcher_style == GDL_SWITCHER_STYLE_TABS && - switcher->priv->show == FALSE) - return; - - if (switcher->priv->switcher_style == switcher_style && - switcher->priv->show == TRUE) - return; + else + set_switcher_style_toolbar (switcher, switcher_style); - set_switcher_style_internal (switcher, - ((switcher_style == - GDL_SWITCHER_STYLE_TOOLBAR)? - GDL_SWITCHER_STYLE_BOTH : switcher_style)); gtk_widget_queue_resize (GTK_WIDGET (switcher)); - - if (switcher_style != GDL_SWITCHER_STYLE_TABS) - switcher->priv->switcher_style = switcher_style; + switcher->priv->switcher_style = switcher_style; } -#endif /* HAVE_GNOME */ - static void gdl_switcher_set_show_buttons (GdlSwitcher *switcher, gboolean show) { diff --git a/src/libgdl/gdl-switcher.h b/src/libgdl/gdl-switcher.h index 9c33f8bbf..991f2da20 100644 --- a/src/libgdl/gdl-switcher.h +++ b/src/libgdl/gdl-switcher.h @@ -4,20 +4,22 @@ * Copyright (C) 2003 Ettore Perazzoli * 2007 Naba Kumar * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. +* This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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, + * 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 - * General Public License for more details. + * Library 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 + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * + * * Authors: Ettore Perazzoli * Naba Kumar */ @@ -39,14 +41,6 @@ typedef struct _GdlSwitcher GdlSwitcher; typedef struct _GdlSwitcherPrivate GdlSwitcherPrivate; typedef struct _GdlSwitcherClass GdlSwitcherClass; -typedef enum { - GDL_SWITCHER_STYLE_TEXT, - GDL_SWITCHER_STYLE_ICON, - GDL_SWITCHER_STYLE_BOTH, - GDL_SWITCHER_STYLE_TOOLBAR, - GDL_SWITCHER_STYLE_TABS -} GdlSwitcherStyle; - struct _GdlSwitcher { GtkNotebook parent; diff --git a/src/libgdl/gdl.h b/src/libgdl/gdl.h index e47dc310d..467b2b67e 100644 --- a/src/libgdl/gdl.h +++ b/src/libgdl/gdl.h @@ -1,23 +1,22 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * * This file is part of the GNOME Devtools Libraries. - * + * * Copyright (C) 1999-2000 Dave Camp * - * 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 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.1 of the License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, + * 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 General Public License for more details. + * 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 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. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __GDL_H__ @@ -28,12 +27,8 @@ #include "libgdl/gdl-dock-master.h" #include "libgdl/gdl-dock.h" #include "libgdl/gdl-dock-item.h" +#include "libgdl/gdl-dock-item-grip.h" #include "libgdl/gdl-dock-layout.h" -#include "libgdl/gdl-dock-paned.h" -#include "libgdl/gdl-dock-notebook.h" -#include "libgdl/gdl-dock-tablabel.h" #include "libgdl/gdl-dock-bar.h" -#include "libgdl/gdl-combo-button.h" -#include "libgdl/gdl-switcher.h" #endif diff --git a/src/libgdl/test-dock.c b/src/libgdl/test-dock.c index 1e9c80111..abaecf703 100644 --- a/src/libgdl/test-dock.c +++ b/src/libgdl/test-dock.c @@ -81,6 +81,9 @@ create_styles_item (GtkWidget *dock) group = create_style_button (dock, vbox1, group, GDL_SWITCHER_STYLE_TABS, "Notebook tabs"); + group = create_style_button (dock, vbox1, group, + GDL_SWITCHER_STYLE_NONE, + "None of the above"); return vbox1; } -- cgit v1.2.3 From df7bda1a8b9d4a1c6f0fd4b82cdeb614eb1ea8d2 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 10 Jul 2011 00:13:05 -0700 Subject: Refactored to abstract lcms usage more. Added CMSSystem class. (bzr r10437) --- src/CMakeLists.txt | 2 +- src/Makefile_insert | 3 +- src/cms-system.h | 60 ++++++++++++++++++++++++++++++++++ src/color-profile-fns.h | 60 ---------------------------------- src/color-profile.cpp | 31 +++++++++++------- src/color-profile.h | 1 + src/display/sp-canvas.cpp | 10 +++--- src/sp-image.cpp | 10 +++--- src/svg/svg-color.cpp | 17 ++++------ src/ui/dialog/inkscape-preferences.cpp | 15 +++++---- src/widgets/desktop-widget.cpp | 8 ++--- src/widgets/sp-color-icc-selector.cpp | 10 ++++-- src/widgets/sp-color-notebook.cpp | 10 +++--- 13 files changed, 124 insertions(+), 113 deletions(-) create mode 100644 src/cms-system.h delete mode 100644 src/color-profile-fns.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 11a307037..038e7bb73 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -307,7 +307,7 @@ set(inkscape_SRC box3d-side.h box3d.h cms-color-types.h - color-profile-fns.h + cms-system.h color-profile-cms-fns.h color-profile-test.h color-profile.h diff --git a/src/Makefile_insert b/src/Makefile_insert index d4f96fc87..2cb689740 100644 --- a/src/Makefile_insert +++ b/src/Makefile_insert @@ -13,9 +13,10 @@ ink_common_sources += \ box3d-side.cpp box3d-side.h \ brokenimage.xpm \ cms-color-types.h \ + cms-system.h \ color.cpp color.h \ color-profile.cpp color-profile.h \ - color-profile-fns.h color-profile-cms-fns.h \ + color-profile-cms-fns.h \ color-rgba.h \ common-context.cpp common-context.h \ composite-undo-stack-observer.cpp \ diff --git a/src/cms-system.h b/src/cms-system.h new file mode 100644 index 000000000..1f75f8619 --- /dev/null +++ b/src/cms-system.h @@ -0,0 +1,60 @@ +#ifndef SEEN_COLOR_PROFILE_FNS_H +#define SEEN_COLOR_PROFILE_FNS_H + +/** \file + * Macros and fn declarations related to linear gradients. + */ + +#include +#include +#include +#include +#include "cms-color-types.h" + +class SPDocument; + +namespace Inkscape { + +class ColorProfile; + +class CMSSystem { +public: + static cmsHPROFILE getHandle( SPDocument* document, guint* intent, gchar const* name ); + + static cmsHTRANSFORM getDisplayTransform(); + + static Glib::ustring getDisplayId( int screen, int monitor ); + + static Glib::ustring setDisplayPer( gpointer buf, guint bufLen, int screen, int monitor ); + + static cmsHTRANSFORM getDisplayPer( Glib::ustring const& id ); + + static std::vector getDisplayNames(); + + static std::vector getSoftproofNames(); + + static Glib::ustring getPathForProfile(Glib::ustring const& name); + + static void doTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size); + + static bool isPrintColorSpace(ColorProfile const *profile); + + static gint getChannelCount(ColorProfile const *profile); +}; + + +} // namespace Inkscape + + +#endif // !SEEN_COLOR_PROFILE_FNS_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/color-profile-fns.h b/src/color-profile-fns.h deleted file mode 100644 index 0588ce89e..000000000 --- a/src/color-profile-fns.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef SEEN_COLOR_PROFILE_FNS_H -#define SEEN_COLOR_PROFILE_FNS_H - -/** \file - * Macros and fn declarations related to linear gradients. - */ - -#include -#include -#if ENABLE_LCMS -#include -#include -#endif // ENABLE_LCMS -#include "cms-color-types.h" - -class SPDocument; - -namespace Inkscape { - -namespace XML { -class Node; -} // namespace XML - -class ColorProfile; - -#if ENABLE_LCMS - -cmsHPROFILE colorprofile_get_handle( SPDocument* document, guint* intent, gchar const* name ); -cmsHTRANSFORM colorprofile_get_display_transform(); - -Glib::ustring colorprofile_get_display_id( int screen, int monitor ); -Glib::ustring colorprofile_set_display_per( gpointer buf, guint bufLen, int screen, int monitor ); -cmsHTRANSFORM colorprofile_get_display_per( Glib::ustring const& id ); - -std::vector colorprofile_get_display_names(); -std::vector colorprofile_get_softproof_names(); - -Glib::ustring get_path_for_profile(Glib::ustring const& name); - -void colorprofile_cmsDoTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size); - -bool colorprofile_isPrintColorSpace(ColorProfile const *profile); - -#endif // ENABLE_LCMS - -} // namespace Inkscape - - -#endif // !SEEN_COLOR_PROFILE_FNS_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/color-profile.cpp b/src/color-profile.cpp index 4bc37fdf8..f858f7f70 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -31,7 +31,7 @@ #include "xml/repr.h" #include "color.h" #include "color-profile.h" -#include "color-profile-fns.h" +#include "cms-system.h" #include "color-profile-cms-fns.h" #include "attributes.h" #include "inkscape.h" @@ -552,7 +552,7 @@ static SPObject* bruteFind( SPDocument* document, gchar const* name ) return result; } -cmsHPROFILE Inkscape::colorprofile_get_handle( SPDocument* document, guint* intent, gchar const* name ) +cmsHPROFILE Inkscape::CMSSystem::getHandle( SPDocument* document, guint* intent, gchar const* name ) { cmsHPROFILE prof = 0; @@ -652,7 +652,7 @@ ProfileInfo::ProfileInfo( cmsHPROFILE prof, Glib::ustring const & path ) static std::vector knownProfiles; -std::vector Inkscape::colorprofile_get_display_names() +std::vector Inkscape::CMSSystem::getDisplayNames() { loadProfiles(); std::vector result; @@ -666,7 +666,7 @@ std::vector Inkscape::colorprofile_get_display_names() return result; } -std::vector Inkscape::colorprofile_get_softproof_names() +std::vector Inkscape::CMSSystem::getSoftproofNames() { loadProfiles(); std::vector result; @@ -680,7 +680,7 @@ std::vector Inkscape::colorprofile_get_softproof_names() return result; } -Glib::ustring Inkscape::get_path_for_profile(Glib::ustring const& name) +Glib::ustring Inkscape::CMSSystem::getPathForProfile(Glib::ustring const& name) { loadProfiles(); Glib::ustring result; @@ -695,12 +695,12 @@ Glib::ustring Inkscape::get_path_for_profile(Glib::ustring const& name) return result; } -void Inkscape::colorprofile_cmsDoTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size) +void Inkscape::CMSSystem::doTransform(cmsHTRANSFORM transform, void *inBuf, void *outBuf, unsigned int size) { cmsDoTransform(transform, inBuf, outBuf, size); } -bool Inkscape::colorprofile_isPrintColorSpace(ColorProfile const *profile) +bool Inkscape::CMSSystem::isPrintColorSpace(ColorProfile const *profile) { bool isPrint = false; if ( profile ) { @@ -710,6 +710,15 @@ bool Inkscape::colorprofile_isPrintColorSpace(ColorProfile const *profile) return isPrint; } +gint Inkscape::CMSSystem::getChannelCount(ColorProfile const *profile) +{ + gint count = 0; + if ( profile ) { + count = _cmsChannelsOf( asICColorSpaceSig(profile->getColorSpace()) ); + } + return count; +} + #endif // ENABLE_LCMS std::vector ColorProfile::getBaseProfileDirs() { @@ -1077,7 +1086,7 @@ cmsHPROFILE getProofProfileHandle() static void free_transforms(); -cmsHTRANSFORM Inkscape::colorprofile_get_display_transform() +cmsHTRANSFORM Inkscape::CMSSystem::getDisplayTransform() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display"); @@ -1188,7 +1197,7 @@ void free_transforms() } } -Glib::ustring Inkscape::colorprofile_get_display_id( int screen, int monitor ) +Glib::ustring Inkscape::CMSSystem::getDisplayId( int screen, int monitor ) { Glib::ustring id; @@ -1203,7 +1212,7 @@ Glib::ustring Inkscape::colorprofile_get_display_id( int screen, int monitor ) return id; } -Glib::ustring Inkscape::colorprofile_set_display_per( gpointer buf, guint bufLen, int screen, int monitor ) +Glib::ustring Inkscape::CMSSystem::setDisplayPer( gpointer buf, guint bufLen, int screen, int monitor ) { Glib::ustring id; @@ -1236,7 +1245,7 @@ Glib::ustring Inkscape::colorprofile_set_display_per( gpointer buf, guint bufLen return id; } -cmsHTRANSFORM Inkscape::colorprofile_get_display_per( Glib::ustring const& id ) +cmsHTRANSFORM Inkscape::CMSSystem::getDisplayPer( Glib::ustring const& id ) { cmsHTRANSFORM result = 0; if ( id.empty() ) { diff --git a/src/color-profile.h b/src/color-profile.h index 1b06b6a78..a9724defc 100644 --- a/src/color-profile.h +++ b/src/color-profile.h @@ -33,6 +33,7 @@ struct ColorProfileClass { /** Color Profile. */ struct ColorProfile : public SPObject { friend cmsHPROFILE colorprofile_get_handle( SPDocument*, guint*, gchar const* ); + friend class CMSSystem; static GType getType(); static void classInit( ColorProfileClass *klass ); diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index ea39d3435..37998437d 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -30,9 +30,7 @@ #include "preferences.h" #include "inkscape.h" #include "sodipodi-ctrlrect.h" -#if ENABLE_LCMS -#include "color-profile-fns.h" -#endif // ENABLE_LCMS +#include "cms-system.h" #include "display/rendermode.h" #include "display/cairo-utils.h" #include "debug/gdk-event-latency-tracker.h" @@ -1672,9 +1670,9 @@ static void sp_canvas_paint_single_buffer(SPCanvas *canvas, int x0, int y0, int Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display"); if ( fromDisplay ) { - transf = Inkscape::colorprofile_get_display_per( canvas->cms_key ? *(canvas->cms_key) : "" ); + transf = Inkscape::CMSSystem::getDisplayPer( canvas->cms_key ? *(canvas->cms_key) : "" ); } else { - transf = Inkscape::colorprofile_get_display_transform(); + transf = Inkscape::CMSSystem::getDisplayTransform(); } if (transf) { @@ -1683,7 +1681,7 @@ static void sp_canvas_paint_single_buffer(SPCanvas *canvas, int x0, int y0, int int stride = cairo_image_surface_get_stride(imgs); for (int i=0; i //#define DEBUG_LCMS #ifdef DEBUG_LCMS @@ -849,9 +849,9 @@ static void sp_image_update( SPObject *object, SPCtx *ctx, unsigned int flags ) DEBUG_MESSAGE( lcmsFive, "in 's sp_image_update. About to call colorprofile_get_handle()" ); #endif // DEBUG_LCMS guint profIntent = Inkscape::RENDERING_INTENT_UNKNOWN; - cmsHPROFILE prof = Inkscape::colorprofile_get_handle( object->document, - &profIntent, - image->color_profile ); + cmsHPROFILE prof = Inkscape::CMSSystem::getHandle( object->document, + &profIntent, + image->color_profile ); if ( prof ) { icProfileClassSignature profileClass = cmsGetDeviceClass( prof ); if ( profileClass != icSigNamedColorClass ) { diff --git a/src/svg/svg-color.cpp b/src/svg/svg-color.cpp index 3605bde55..9293564d5 100644 --- a/src/svg/svg-color.cpp +++ b/src/svg/svg-color.cpp @@ -1,5 +1,3 @@ -#define __SP_SVG_COLOR_C__ - /** * \file * Reading \& writing of SVG/CSS colors. @@ -37,17 +35,16 @@ #include "svg-icc-color.h" #if ENABLE_LCMS -#include #include "color.h" #include "color-profile.h" #include "document.h" #include "inkscape.h" #include "profile-manager.h" -#include "color-profile-cms-fns.h" #endif // ENABLE_LCMS -#include "color-profile-fns.h" +#include "cms-system.h" using std::sprintf; +using Inkscape::CMSSystem; struct SPSVGColor { unsigned long rgb; @@ -467,7 +464,7 @@ sp_svg_create_color_hash() #if ENABLE_LCMS //helper function borrowed from src/widgets/sp-color-icc-selector.cpp: -void getThings( DWORD space, gchar const**& namers, gchar const**& tippies, guint const*& scalies ); +void getThings( Inkscape::ColorProfile *prof, gchar const**& namers, gchar const**& tippies, guint const*& scalies ); void icc_color_to_sRGB(SVGICCColor* icc, guchar* r, guchar* g, guchar* b){ guchar color_out[4]; @@ -481,18 +478,18 @@ g_message("profile name: %s", icc->colorProfile.c_str()); gchar const** names = 0; gchar const** tips = 0; guint const* scales = 0; - getThings( asICColorSpaceSig(prof->getColorSpace()), names, tips, scales ); + getThings( prof, names, tips, scales ); - guint count = _cmsChannelsOf( asICColorSpaceSig(prof->getColorSpace()) ); + gint count = CMSSystem::getChannelCount( prof ); if (count > 4) { count = 4; //do we need it? Should we allow an arbitrary number of color values? Or should we limit to a maximum? (max==4?) } - for (guint i=0;icolors[i])*256.0) * (gdouble)scales[i]); g_message("input[%d]: %d",i, color_in[i]); } - cmsDoTransform( trans, color_in, color_out, 1 ); + CMSSystem::doTransform( trans, color_in, color_out, 1 ); g_message("transform to sRGB done"); } *r = color_out[0]; diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index aa3c18aaa..d11ffd565 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -41,7 +41,7 @@ #include "ui/widget/spinbutton.h" #include "display/nr-filter-gaussian.h" #include "display/nr-filter-types.h" -#include "color-profile-fns.h" +#include "cms-system.h" #include "color-profile.h" #include "display/canvas-grid.h" #include "path-prefix.h" @@ -62,6 +62,7 @@ using Inkscape::UI::Widget::PrefCheckButton; using Inkscape::UI::Widget::PrefRadioButton; using Inkscape::UI::Widget::PrefSpinButton; using Inkscape::UI::Widget::StyleSwatch; +using Inkscape::CMSSystem; InkscapePreferences::InkscapePreferences() @@ -858,7 +859,7 @@ static void profileComboChanged( Gtk::ComboBoxText* combo ) } else { Glib::ustring active = combo->get_active_text(); - Glib::ustring path = get_path_for_profile(active); + Glib::ustring path = CMSSystem::getPathForProfile(active); if ( !path.empty() ) { prefs->setString("/options/displayprofile/uri", path); } @@ -868,7 +869,7 @@ static void profileComboChanged( Gtk::ComboBoxText* combo ) static void proofComboChanged( Gtk::ComboBoxText* combo ) { Glib::ustring active = combo->get_active_text(); - Glib::ustring path = get_path_for_profile(active); + Glib::ustring path = CMSSystem::getPathForProfile(active); if ( !path.empty() ) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -975,7 +976,7 @@ void InkscapePreferences::initPageCMS() #if ENABLE_LCMS { - std::vector names = ::Inkscape::colorprofile_get_display_names(); + std::vector names = ::Inkscape::CMSSystem::getDisplayNames(); Glib::ustring current = prefs->getString( "/options/displayprofile/uri" ); gint index = 0; @@ -983,7 +984,7 @@ void InkscapePreferences::initPageCMS() index++; for ( std::vector::iterator it = names.begin(); it != names.end(); ++it ) { _cms_display_profile.append_text( *it ); - Glib::ustring path = get_path_for_profile(*it); + Glib::ustring path = CMSSystem::getPathForProfile(*it); if ( !path.empty() && path == current ) { _cms_display_profile.set_active(index); } @@ -993,12 +994,12 @@ void InkscapePreferences::initPageCMS() _cms_display_profile.set_active(0); } - names = ::Inkscape::colorprofile_get_softproof_names(); + names = ::Inkscape::CMSSystem::getSoftproofNames(); current = prefs->getString("/options/softproof/uri"); index = 0; for ( std::vector::iterator it = names.begin(); it != names.end(); ++it ) { _cms_proof_profile.append_text( *it ); - Glib::ustring path = get_path_for_profile(*it); + Glib::ustring path = CMSSystem::getPathForProfile(*it); if ( !path.empty() && path == current ) { _cms_proof_profile.set_active(index); } diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 52008625a..34c3ab75a 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -28,7 +28,7 @@ #include #include "box3d-context.h" -#include "color-profile-fns.h" +#include "cms-system.h" #include "conn-avoid-ref.h" #include "desktop-events.h" #include "desktop-handles.h" @@ -193,7 +193,7 @@ void CMSPrefWatcher::hook(EgeColorProfTracker */*tracker*/, gint screen, gint mo guint len = 0; ege_color_prof_tracker_get_profile_for( screen, monitor, reinterpret_cast(&buf), &len ); - Glib::ustring id = Inkscape::colorprofile_set_display_per( buf, len, screen, monitor ); + Glib::ustring id = Inkscape::CMSSystem::setDisplayPer( buf, len, screen, monitor ); #endif // ENABLE_LCMS } @@ -540,7 +540,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw ) #if ENABLE_LCMS bool fromDisplay = prefs->getBool( "/options/displayprofile/from_display"); if ( fromDisplay ) { - Glib::ustring id = Inkscape::colorprofile_get_display_id( 0, 0 ); + Glib::ustring id = Inkscape::CMSSystem::getDisplayId( 0, 0 ); bool enabled = false; if ( dtw->canvas->cms_key ) { @@ -805,7 +805,7 @@ void sp_dtw_color_profile_event(EgeColorProfTracker */*tracker*/, SPDesktopWidge GdkScreen* screen = gtk_widget_get_screen(GTK_WIDGET(dtw)); gint screenNum = gdk_screen_get_number(screen); gint monitor = gdk_screen_get_monitor_at_window(screen, gtk_widget_get_toplevel(GTK_WIDGET(dtw))->window); - Glib::ustring id = Inkscape::colorprofile_get_display_id( screenNum, monitor ); + Glib::ustring id = Inkscape::CMSSystem::getDisplayId( screenNum, monitor ); bool enabled = false; if ( dtw->canvas->cms_key ) { *(dtw->canvas->cms_key) = id; diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 9e5291cc4..888cc2629 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -15,9 +15,9 @@ #define noDEBUG_LCMS #if ENABLE_LCMS -#include "color-profile-fns.h" -#include "color-profile-cms-fns.h" #include "color-profile.h" +#include "cms-system.h" +#include "color-profile-cms-fns.h" #ifdef DEBUG_LCMS #include "preferences.h" @@ -259,6 +259,12 @@ void getThings( DWORD space, gchar const**& namers, gchar const**& tippies, guin tippies = tips[index]; scalies = scales[index]; } + + +void getThings( Inkscape::ColorProfile *prof, gchar const**& namers, gchar const**& tippies, guint const*& scalies ) { + getThings( asICColorSpaceSig(prof->getColorSpace()), namers, tippies, scalies ); +} + #endif // ENABLE_LCMS diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 546f7838b..1324e0b16 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -36,11 +36,9 @@ #include "../document.h" #include "../profile-manager.h" #include "color-profile.h" -#include "color-profile-fns.h" -#if ENABLE_LCMS -//#include "lcms.h" -//#include "color-profile-cms-fns.h" -#endif // ENABLE_LCMS +#include "cms-system.h" + +using Inkscape::CMSSystem; struct SPColorNotebookTracker { const gchar* name; @@ -540,7 +538,7 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) gtk_widget_set_sensitive (_box_toomuchink, false); if (color.icc){ Inkscape::ColorProfile* prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( prof && colorprofile_isPrintColorSpace(prof) ) { + if ( prof && CMSSystem::isPrintColorSpace(prof) ) { gtk_widget_show(GTK_WIDGET(_box_toomuchink)); double ink_sum = 0; for (unsigned int i=0; icolors.size(); i++){ -- cgit v1.2.3 From 61b9edb0a77f71d669a621ef2c58f1d1ea6f463d Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 10 Jul 2011 01:48:48 -0700 Subject: Update for non-LCMS builds. (bzr r10438) --- src/color-profile.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/color-profile.cpp b/src/color-profile.cpp index f858f7f70..41c9d4c63 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -131,6 +131,7 @@ public: namespace Inkscape { +#ifdef ENABLE_LCMS icColorSpaceSignature asICColorSpaceSig(ColorSpaceSig const & sig) { return ColorSpaceSigWrapper(sig); @@ -140,6 +141,7 @@ icProfileClassSignature asICColorProfileClassSig(ColorProfileClassSig const & si { return ColorProfileClassSigWrapper(sig); } +#endif // ENABLE_LCMS } // namespace Inkscape -- cgit v1.2.3 From 12f47cac056804dd53cc334b27c7b1b0f55ab5b6 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 10 Jul 2011 11:01:19 +0200 Subject: Allow em and ex as units on font-size. (bzr r10437.1.1) --- src/libnrtype/Layout-TNG-Input.cpp | 2 +- src/style.cpp | 133 +++++++++++++++++++++---------------- src/style.h | 11 +-- 3 files changed, 83 insertions(+), 63 deletions(-) diff --git a/src/libnrtype/Layout-TNG-Input.cpp b/src/libnrtype/Layout-TNG-Input.cpp index 45bc0c89b..c5ea3969d 100644 --- a/src/libnrtype/Layout-TNG-Input.cpp +++ b/src/libnrtype/Layout-TNG-Input.cpp @@ -135,7 +135,7 @@ float Layout::InputStreamTextSource::styleComputeFontSize() const if (this_style->font_size.set && !this_style->font_size.inherit) { switch (this_style->font_size.type) { case SP_FONT_SIZE_LITERAL: { - switch(this_style->font_size.value) { // these multipliers are straight out of the CSS spec + switch(this_style->font_size.literal) { // these multipliers are straight out of the CSS spec case SP_CSS_FONT_SIZE_XX_SMALL: return medium_font_size * inherit_multiplier * (3.0/5.0); case SP_CSS_FONT_SIZE_X_SMALL: return medium_font_size * inherit_multiplier * (3.0/4.0); case SP_CSS_FONT_SIZE_SMALL: return medium_font_size * inherit_multiplier * (8.0/9.0); diff --git a/src/style.cpp b/src/style.cpp index bb25a5f46..699b087dd 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -1343,11 +1343,11 @@ sp_style_merge_font_size_from_parent(SPIFontSize &child, SPIFontSize const &pare * fixme: SVG and CSS do not specify clearly, whether we should use * user or screen coordinates (Lauris) */ - if (child.value < SP_CSS_FONT_SIZE_SMALLER) { - child.computed = font_size_table[child.value]; - } else if (child.value == SP_CSS_FONT_SIZE_SMALLER) { + if (child.literal < SP_CSS_FONT_SIZE_SMALLER) { + child.computed = font_size_table[child.literal]; + } else if (child.literal == SP_CSS_FONT_SIZE_SMALLER) { child.computed = parent.computed / 1.2; - } else if (child.value == SP_CSS_FONT_SIZE_LARGER) { + } else if (child.literal == SP_CSS_FONT_SIZE_LARGER) { child.computed = parent.computed * 1.2; } else { /* Illegal value */ @@ -1355,7 +1355,21 @@ sp_style_merge_font_size_from_parent(SPIFontSize &child, SPIFontSize const &pare } else if (child.type == SP_FONT_SIZE_PERCENTAGE) { /* Unlike most other lengths, percentage for font size is relative to parent computed value * rather than viewport. */ - child.computed = parent.computed * SP_F8_16_TO_FLOAT(child.value); + child.computed = parent.computed * child.value; + } else if (child.type == SP_FONT_SIZE_LENGTH) { + switch (child.unit) { + case SP_CSS_UNIT_EM: + /* Relative to parent font size */ + child.computed = parent.computed * child.value; + break; + case SP_CSS_UNIT_EX: + /* Relative to parent font size */ + child.computed = parent.computed * child.value * 0.5; /* Hack */ + break; + default: + /* No change */ + break; + } } } @@ -1790,7 +1804,7 @@ get_relative_font_size_frac(SPIFontSize const &font_size) { switch (font_size.type) { case SP_FONT_SIZE_LITERAL: { - switch (font_size.value) { + switch (font_size.literal) { case SP_CSS_FONT_SIZE_SMALLER: return 5.0 / 6.0; @@ -1803,10 +1817,20 @@ get_relative_font_size_frac(SPIFontSize const &font_size) } case SP_FONT_SIZE_PERCENTAGE: - return SP_F8_16_TO_FLOAT(font_size.value); + return font_size.value; + + case SP_FONT_SIZE_LENGTH: { + switch (font_size.unit ) { + case SP_CSS_UNIT_EM: + return font_size.value; + + case SP_CSS_UNIT_EX: + return font_size.value * 0.5; - case SP_FONT_SIZE_LENGTH: - g_assert_not_reached(); + default: + g_assert_not_reached(); + } + } } g_assert_not_reached(); } @@ -1853,20 +1877,29 @@ sp_style_merge_from_dying_parent(SPStyle *const style, SPStyle const *const pare { /* font-size. Note that we update the computed font-size of style, to assist in em calculations later in this function. */ + if (parent->font_size.set && !parent->font_size.inherit) { + /* Parent has defined font-size */ + if (!style->font_size.set || style->font_size.inherit) { /* font_size inherits the computed value, so we can use the parent value * verbatim. */ style->font_size = parent->font_size; - } else if ( style->font_size.type == SP_FONT_SIZE_LENGTH ) { + + } else if ( style->font_size.type == SP_FONT_SIZE_LENGTH && + style->font_size.unit != SP_CSS_UNIT_EM && + style->font_size.unit != SP_CSS_UNIT_EX ) { + /* Child already has absolute size (stored in computed value), so do nothing. */ + } else if ( style->font_size.type == SP_FONT_SIZE_LITERAL - && style->font_size.value < SP_CSS_FONT_SIZE_SMALLER ) { + && style->font_size.literal < SP_CSS_FONT_SIZE_SMALLER ) { /* Child already has absolute size, but we ensure that the computed value is up-to-date. */ - unsigned const ix = style->font_size.value; + unsigned const ix = style->font_size.literal; g_assert(ix < G_N_ELEMENTS(font_size_table)); style->font_size.computed = font_size_table[ix]; + } else { /* Child has relative size. */ double const child_frac(get_relative_font_size_frac(style->font_size)); @@ -1875,17 +1908,26 @@ sp_style_merge_from_dying_parent(SPStyle *const style, SPStyle const *const pare style->font_size.computed = parent->font_size.computed * child_frac; if ( ( parent->font_size.type == SP_FONT_SIZE_LITERAL - && parent->font_size.value < SP_CSS_FONT_SIZE_SMALLER ) - || parent->font_size.type == SP_FONT_SIZE_LENGTH ) - { + && parent->font_size.literal < SP_CSS_FONT_SIZE_SMALLER ) || + ( parent->font_size.type == SP_FONT_SIZE_LENGTH && + parent->font_size.unit != SP_CSS_UNIT_EM && + parent->font_size.unit != SP_CSS_UNIT_EX ) ) { + /* Absolute value. */ style->font_size.type = SP_FONT_SIZE_LENGTH; - /* .value is unused for SP_FONT_SIZE_LENGTH. */ + /* .value is unused for non ex/em SP_FONT_SIZE_LENGTH. */ + } else { /* Relative value. */ + double const parent_frac(get_relative_font_size_frac(parent->font_size)); - style->font_size.type = SP_FONT_SIZE_PERCENTAGE; - style->font_size.value = SP_F8_16_FROM_FLOAT(parent_frac * child_frac); + if( style->font_size.type == SP_FONT_SIZE_LENGTH ) { + /* Value in terms of ex/em */ + style->font_size.value *= parent_frac; + } else { + style->font_size.value = parent_frac * child_frac; + style->font_size.type = SP_FONT_SIZE_PERCENTAGE; + } } } } @@ -2677,7 +2719,7 @@ sp_style_clear(SPStyle *style) style->font_size.set = FALSE; style->font_size.type = SP_FONT_SIZE_LITERAL; - style->font_size.value = SP_CSS_FONT_SIZE_MEDIUM; + style->font_size.literal = SP_CSS_FONT_SIZE_MEDIUM; style->font_size.computed = 12.0; style->font_style.set = FALSE; style->font_style.value = style->font_style.computed = SP_CSS_FONT_STYLE_NORMAL; @@ -3008,6 +3050,7 @@ sp_style_read_ienum(SPIEnum *val, gchar const *str, SPStyleEnum const *dict, } } } + return; } @@ -3284,52 +3327,26 @@ sp_style_read_ifontsize(SPIFontSize *val, gchar const *str) val->set = TRUE; val->inherit = FALSE; val->type = SP_FONT_SIZE_LITERAL; - val->value = enum_font_size[i].value; + val->literal = enum_font_size[i].value; return; } } /* Invalid */ return; } else { - gdouble value; - gchar *e; - /* fixme: Move this to standard place (Lauris) */ - value = g_ascii_strtod(str, &e); - if ((gchar const *) e != str) { - if (!*e) { - /* Userspace */ - } else if (!strcmp(e, "px")) { - /* Userspace */ - } else if (!strcmp(e, "pt")) { - /* Userspace * DEVICESCALE */ - value *= PX_PER_PT; - } else if (!strcmp(e, "pc")) { - /* 12pt */ - value *= PX_PER_PT * 12.0; - } else if (!strcmp(e, "mm")) { - value *= PX_PER_MM; - } else if (!strcmp(e, "cm")) { - value *= PX_PER_CM; - } else if (!strcmp(e, "in")) { - value *= PX_PER_IN; - } else if (!strcmp(e, "%")) { - /* Percentage */ - val->set = TRUE; - val->inherit = FALSE; - val->type = SP_FONT_SIZE_PERCENTAGE; - val->value = SP_F8_16_FROM_FLOAT(value / 100.0); - return; - } else { - /* Invalid */ - return; - } - /* Length */ - val->set = TRUE; - val->inherit = FALSE; + SPILength length; + sp_style_read_ilength(&length, str); + val->set = length.set; + val->inherit = length.inherit; + val->unit = length.unit; + val->value = length.value; + val->computed = length.computed; + if( val->unit == SP_CSS_UNIT_PERCENT ) { + val->type = SP_FONT_SIZE_PERCENTAGE; + } else { val->type = SP_FONT_SIZE_LENGTH; - val->computed = value; - return; } + return; } } @@ -3935,7 +3952,7 @@ sp_style_write_ifontsize(gchar *p, gint const len, gchar const *key, return g_strlcpy(p, os.str().c_str(), len); } else if (val->type == SP_FONT_SIZE_PERCENTAGE) { Inkscape::CSSOStringStream os; - os << key << ":" << (SP_F8_16_TO_FLOAT(val->value) * 100.0) << "%;"; + os << key << ":" << (val->value * 100.0) << "%;"; return g_strlcpy(p, os.str().c_str(), len); } } diff --git a/src/style.h b/src/style.h index a12db388a..d82a0dd5e 100644 --- a/src/style.h +++ b/src/style.h @@ -206,21 +206,24 @@ enum { SP_BASELINE_SHIFT_PERCENTAGE }; -#define SP_FONT_SIZE ((1 << 24) - 1) - +/* +Not used anymore, originally for SPIFontSize #define SP_F8_16_TO_FLOAT(v) ((gdouble) (v) / (1 << 16)) #define SP_F8_16_FROM_FLOAT(v) ((int) ((v) * ((1 << 16) + 0.9999))) +*/ #define SP_STYLE_FLAG_IFSET (1 << 0) #define SP_STYLE_FLAG_IFDIFF (1 << 1) #define SP_STYLE_FLAG_ALWAYS (1 << 2) -/// Fontsize type internal to SPStyle. +/// Fontsize type internal to SPStyle (also used by libnrtype/Layout-TNG-Input.cpp). struct SPIFontSize { unsigned set : 1; unsigned inherit : 1; unsigned type : 2; - unsigned value : 24; + unsigned unit : 4; + unsigned literal: 4; + float value; float computed; }; -- cgit v1.2.3 From 7b0a658e33d7b7a7f0313bef2fdaf8ed32af1c7e Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sun, 10 Jul 2011 18:54:41 +0100 Subject: Remove --export-dynamic linker flag (bzr r10430.1.1) --- configure.ac | 1 - src/Makefile.am | 6 +----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index ee65676cc..3ecfd9870 100644 --- a/configure.ac +++ b/configure.ac @@ -325,7 +325,6 @@ else platform_osx=no fi AC_MSG_RESULT([$platform_osx]) -AM_CONDITIONAL(EXPORT_DYNAMIC_DIRECT, test "$platform_osx" = "yes") AC_MSG_CHECKING([for Solaris platform]) case "$host" in diff --git a/src/Makefile.am b/src/Makefile.am index 7925dcd7e..5a50eb36f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -208,11 +208,7 @@ libinkscape_a_SOURCES = $(ink_common_sources) inkscape_SOURCES += main.cpp $(win32_sources) inkscape_LDADD = $(all_libs) -if EXPORT_DYNAMIC_DIRECT -inkscape_LDFLAGS = --export-dynamic $(kdeldflags) $(mwindows) -else -inkscape_LDFLAGS = -Wl,--export-dynamic $(kdeldflags) $(mwindows) -endif +inkscape_LDFLAGS = $(kdeldflags) $(mwindows) inkview_SOURCES += inkview.cpp $(win32_sources) inkview_LDADD = $(all_libs) -- cgit v1.2.3 From 79cb3f5ae387630b9f696c17d99de984c00a43e3 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sun, 10 Jul 2011 20:13:40 +0200 Subject: i18n. Adding new GCode Tool extensions (see Bug #731177). i18n. Fix typo in the ABC custom predefined filters (see Bug #806055). Translations. inkscape.pot and fr.po update. (bzr r10437.1.3) --- po/POTFILES.in | 4 +- po/fr.po | 4093 +++++++++++++++++++---------------- po/inkscape.pot | 3886 +++++++++++++++++---------------- src/extension/internal/filter/abc.h | 12 +- 4 files changed, 4273 insertions(+), 3722 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index aa742f218..59b13dfa5 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -385,14 +385,16 @@ share/extensions/web-transmit-att.py [type: gettext/xml] share/extensions/fractalize.inx [type: gettext/xml] share/extensions/funcplot.inx [type: gettext/xml] share/extensions/gears.inx -[type: gettext/xml] share/extensions/gcodetools_all_in_one.inx +[type: gettext/xml] share/extensions/gcodetools_about.inx [type: gettext/xml] share/extensions/gcodetools_area.inx [type: gettext/xml] share/extensions/gcodetools_check_for_updates.inx [type: gettext/xml] share/extensions/gcodetools_dxf_points.inx [type: gettext/xml] share/extensions/gcodetools_engraving.inx +[type: gettext/xml] share/extensions/gcodetools_graffiti.inx [type: gettext/xml] share/extensions/gcodetools_lathe.inx [type: gettext/xml] share/extensions/gcodetools_orientation_points.inx [type: gettext/xml] share/extensions/gcodetools_path_to_gcode.inx +[type: gettext/xml] share/extensions/gcodetools_prepare_path_for_plasma.inx [type: gettext/xml] share/extensions/gcodetools_tools_library.inx [type: gettext/xml] share/extensions/generate_voronoi.inx [type: gettext/xml] share/extensions/gimp_xcf.inx diff --git a/po/fr.po b/po/fr.po index 77d134564..df438f1d3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2011-06-29 21:07+0200\n" -"PO-Revision-Date: 2011-06-29 21:21+0100\n" +"POT-Creation-Date: 2011-07-10 19:44+0200\n" +"PO-Revision-Date: 2011-07-10 20:04+0100\n" "Last-Translator: Nicolas Dufour \n" "Language-Team: \n" "Language: \n" @@ -122,11 +122,23 @@ msgstr "Image extraite dans le dossier : %s" msgid "Unable to find image data." msgstr "Les données de l’image sont introuvables." -#: ../share/extensions/gcodetools.py:3087 +#: ../share/extensions/gcodetools.py:3317 +#: ../share/extensions/gcodetools.py:4522 +#: ../share/extensions/gcodetools.py:4695 +#: ../share/extensions/gcodetools.py:6228 +#: ../share/extensions/gcodetools.py:6423 +msgid "No paths are selected! Trying to work on all available paths." +msgstr "Aucun chemin n'est sélectionné ! Tentative d'utilisation de tous les chemins disponibles." + +#: ../share/extensions/gcodetools.py:3320 +msgid "Noting is selected. Please select something." +msgstr "Rien n'est sélectionné. Merci de sélectionner quelque chose." + +#: ../share/extensions/gcodetools.py:3860 msgid "Directory does not exist! Please specify existing directory at Preferences tab!" msgstr "Le dossier n’existe pas ! Veuillez spécifier un dossier existant dans l'onglet Préférences." -#: ../share/extensions/gcodetools.py:3112 +#: ../share/extensions/gcodetools.py:3890 #, python-format msgid "" "Can not write to specified file!\n" @@ -135,28 +147,33 @@ msgstr "" "Échec de l'écriture dans le fichier spécifié.\n" "%s" -#: ../share/extensions/gcodetools.py:3240 +#: ../share/extensions/gcodetools.py:4036 #, python-format msgid "Orientation points for '%s' layer have not been found! Please add orientation points using Orientation tab!" msgstr "Les points d'orientation n'ont pas été définis pour le calque '%s'. Veuillez ajouter des points d'orientation avec l'onglet Orientation." -#: ../share/extensions/gcodetools.py:3246 +#: ../share/extensions/gcodetools.py:4043 #, python-format msgid "There are more than one orientation point groups in '%s' layer" msgstr "Le calque '%s' contient plus d'un groupe de points d'orientation" -#: ../share/extensions/gcodetools.py:3277 -#: ../share/extensions/gcodetools.py:3279 -msgid "Orientation points are wrong! (if there are two orientation points they sould not be the same. If there are three orientation points they should not be in a straight line.)" +#: ../share/extensions/gcodetools.py:4074 +#: ../share/extensions/gcodetools.py:4076 +msgid "Orientation points are wrong! (if there are two orientation points they should not be the same. If there are three orientation points they should not be in a straight line.)" msgstr "" -#: ../share/extensions/gcodetools.py:3398 +#: ../share/extensions/gcodetools.py:4246 #, python-format msgid "Warning! Found bad orientation points in '%s' layer. Resulting Gcode could be corrupt!" msgstr "Attention ! Des mauvais points d'orientation ont été trouvés dans le calque '%s'. Le Gcode généré pourrait être corrompu !" +#: ../share/extensions/gcodetools.py:4259 +#, python-format +msgid "Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode could be corrupt!" +msgstr "Attention ! Un mauvais point de référence graffiti a été trouvé dans le calque '%s'. Le Gcode généré pourrait être corrompu !" + #. xgettext:no-pango-format -#: ../share/extensions/gcodetools.py:3412 +#: ../share/extensions/gcodetools.py:4280 msgid "" "This extension works with Paths and Dynamic Offsets and groups of them only! All other objects will be ignored!\n" "Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" @@ -164,76 +181,95 @@ msgid "" "Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) and File->Import this file." msgstr "" -#: ../share/extensions/gcodetools.py:3469 +#: ../share/extensions/gcodetools.py:4286 +msgid "Document has no layers! Add at least one layer using layers panel (Ctrl+Shift+L)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4290 +msgid "Warning! There are some paths in the root of the document, but not in any layer! Using bottom-most layer for them." +msgstr "" + +#: ../share/extensions/gcodetools.py:4367 #, python-format msgid "Warning! Tool's and default tool's parameter's (%s) types are not the same ( type('%s') != type('%s') )." msgstr "" -#: ../share/extensions/gcodetools.py:3472 +#: ../share/extensions/gcodetools.py:4370 #, python-format msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." msgstr "" -#: ../share/extensions/gcodetools.py:3486 +#: ../share/extensions/gcodetools.py:4384 #, python-format msgid "Layer '%s' contains more than one tool!" msgstr "Le calque '%s' contient plus d'un outil !" -#: ../share/extensions/gcodetools.py:3489 +#: ../share/extensions/gcodetools.py:4387 #, python-format msgid "Can not find tool for '%s' layer! Please add one with Tools library tab!" msgstr "" -#: ../share/extensions/gcodetools.py:3592 -#: ../share/extensions/gcodetools.py:3673 -msgid "No paths are selected! Trying to work on all available paths." -msgstr "Aucun chemin n'est sélectionné ! Tentative d'utilisation de tous les chemins disponibles." - -#: ../share/extensions/gcodetools.py:3611 -#: ../share/extensions/gcodetools.py:3682 -msgid "Warning: One or more paths dont have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!" +#: ../share/extensions/gcodetools.py:4549 +#: ../share/extensions/gcodetools.py:4704 +msgid "Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!" msgstr "Attention : au moins un chemin n'a pas de paramètre 'd'. Veuillez dégrouper (Maj+Ctrl+G) et transformer l'objet en chemin (Maj+Ctrl+C)." -#: ../share/extensions/gcodetools.py:3641 -msgid "Nothing is selected. Please select something to convert to drill point (dxfpoint) or clear point sign." +#: ../share/extensions/gcodetools.py:4663 +msgid "Noting is selected. Please select something to convert to drill point (dxfpoint) or clear point sign." msgstr "" -#: ../share/extensions/gcodetools.py:3714 -#: ../share/extensions/gcodetools.py:3808 +#: ../share/extensions/gcodetools.py:4746 +#: ../share/extensions/gcodetools.py:4992 msgid "This extension requires at least one selected path." msgstr "Cette extension nécessite la sélection d’un chemin." -#: ../share/extensions/gcodetools.py:3720 +#: ../share/extensions/gcodetools.py:4752 +#: ../share/extensions/gcodetools.py:4998 #, python-format msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" msgstr "Le diamètre d'outil doit être supérieur à 0, ce qui n'est pas le cas pour l'outil du calque '%s' !" -#: ../share/extensions/gcodetools.py:3731 +#: ../share/extensions/gcodetools.py:4763 +#: ../share/extensions/gcodetools.py:4952 +#: ../share/extensions/gcodetools.py:5007 msgid "Warning: omitting non-path" msgstr "Attention : tout ce qui n'est pas chemin n'est pas pris en compte" -#: ../share/extensions/gcodetools.py:4063 +#: ../share/extensions/gcodetools.py:5507 +msgid "Please select at least one path to engrave and run again." +msgstr "Veuillez sélectionner au moins un chemin à graver et recommencer." + +#: ../share/extensions/gcodetools.py:5515 +msgid "Unknown unit selected. mm assumed" +msgstr "Aucune unité n'a été sélectionnée. mm utilisés par défaut." + +#: ../share/extensions/gcodetools.py:5536 #, python-format -msgid "Tool '%s' has no shape!" -msgstr "L'outil '%s' n'a pas de forme !" +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "L'outil '%s' n'a pas de forme. Un cône de 45 degrés sera utilisé !" + +#: ../share/extensions/gcodetools.py:5607 +#: ../share/extensions/gcodetools.py:5612 +msgid "csp_normalised_normal error. See log." +msgstr "" -#: ../share/extensions/gcodetools.py:4073 +#: ../share/extensions/gcodetools.py:5800 msgid "No need to engrave sharp angles." msgstr "Il n'est pas nécessaire de graver les angles aigus." -#: ../share/extensions/gcodetools.py:4086 +#: ../share/extensions/gcodetools.py:5844 msgid "Active layer already has orientation points! Remove them or select another layer!" msgstr "Le calque actif possède déjà des points d'orientation. Veuillez les supprimer ou sélectionner un autre calque." -#: ../share/extensions/gcodetools.py:4134 +#: ../share/extensions/gcodetools.py:5889 msgid "Active layer already has a tool! Remove it or select another layer!" msgstr "Le calque actif possède déjà un outil. Veuillez le supprimer ou sélectionner un autre calque." -#: ../share/extensions/gcodetools.py:4258 +#: ../share/extensions/gcodetools.py:6004 msgid "Selection is empty! Will compute whole drawing." msgstr "La sélection est vide. Le dessin complet sera pris en compte." -#: ../share/extensions/gcodetools.py:4318 +#: ../share/extensions/gcodetools.py:6058 msgid "" "Tutorials, manuals and support can be found at\n" "English support forum:\n" @@ -247,23 +283,26 @@ msgstr "" "Forum en russe :\n" "\thttp://www.cnc-club.ru/gcodetoolsru" -#: ../share/extensions/gcodetools.py:4363 +#: ../share/extensions/gcodetools.py:6103 msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." msgstr "" -#: ../share/extensions/gcodetools.py:4366 +#: ../share/extensions/gcodetools.py:6106 msgid "Lathe X and Z axis remap should be the same. Exiting..." msgstr "" -#: ../share/extensions/gcodetools.py:4527 -msgid "Select one of the active tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library." +#: ../share/extensions/gcodetools.py:6658 +#, python-format +msgid "" +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" msgstr "" -#: ../share/extensions/gcodetools.py:4533 +#: ../share/extensions/gcodetools.py:6664 msgid "Orientation points have not been defined! A default set of orientation points has been automatically added." msgstr "" -#: ../share/extensions/gcodetools.py:4537 +#: ../share/extensions/gcodetools.py:6668 msgid "Cutting tool has not been defined! A default tool has been automatically added." msgstr "" @@ -328,13 +367,13 @@ msgstr "" "Le premier objet sélectionné est de type '%s'.\n" "Essayez la commande Chemin>Objet en chemin." -#: ../share/extensions/perspective.py:74 -#: ../share/extensions/summersnight.py:50 +#: ../share/extensions/perspective.py:75 +#: ../share/extensions/summersnight.py:51 msgid "This extension requires that the second selected path be four nodes long." msgstr "Cette extension exige que le second chemin sélectionné contienne quatre nœuds." -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:82 +#: ../share/extensions/perspective.py:101 +#: ../share/extensions/summersnight.py:84 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." @@ -342,8 +381,8 @@ msgstr "" "Le second objet sélectionné n’est pas un chemin mais un groupe.\n" "Essayez la commande Objet>Dégrouper." -#: ../share/extensions/perspective.py:101 -#: ../share/extensions/summersnight.py:84 +#: ../share/extensions/perspective.py:103 +#: ../share/extensions/summersnight.py:86 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -351,8 +390,8 @@ msgstr "" "Le second objet sélectionné n’est pas un chemin.\n" "Essayez la commande Chemin>Objet en chemin." -#: ../share/extensions/perspective.py:104 -#: ../share/extensions/summersnight.py:87 +#: ../share/extensions/perspective.py:106 +#: ../share/extensions/summersnight.py:89 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -689,7 +728,7 @@ msgstr "Détecte les bords de couleur verticaux dans les objets" #. Pencil #: ../share/filters/filters.svg.h:1 -#: ../src/ui/dialog/inkscape-preferences.cpp:521 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 #: ../src/verbs.cpp:2520 msgid "Pencil" msgstr "Crayon" @@ -712,8 +751,8 @@ msgid "Desaturate" msgstr "Désaturer" #: ../share/filters/filters.svg.h:1 -#: ../src/dialogs/clonetiler.cpp:2509 -#: ../src/dialogs/clonetiler.cpp:2648 +#: ../src/dialogs/clonetiler.cpp:2517 +#: ../src/dialogs/clonetiler.cpp:2656 #: ../src/extension/internal/bitmap/colorize.cpp:51 #: ../src/extension/internal/filter/abc.h:477 #: ../src/extension/internal/filter/abc.h:580 @@ -3739,12 +3778,12 @@ msgid "Select at least one non-connector object." msgstr "Sélectionner au moins un objet non connecteur." #: ../src/connector-context.cpp:1968 -#: ../src/widgets/toolbox.cpp:8280 +#: ../src/widgets/toolbox.cpp:8298 msgid "Make connectors avoid selected objects" msgstr "Faire que les connecteurs évitent les objets sélectionnés" #: ../src/connector-context.cpp:1969 -#: ../src/widgets/toolbox.cpp:8290 +#: ../src/widgets/toolbox.cpp:8308 msgid "Make connectors ignore selected objects" msgstr "Faire que les connecteurs ignorent les objets sélectionnés" @@ -3851,617 +3890,612 @@ msgstr "Hasard :" msgid "_Symmetry" msgstr "_Symétrie" -# See: -# http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples) -# http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary) -# http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary) -#. TRANSLATORS: For the following 17 symmetry groups, see -#. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples); -#. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or -#. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary). -#. -#: ../src/dialogs/clonetiler.cpp:1821 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "Sélectionner l’un de ces 17 groupes de symétrie pour le pavage" - #. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/dialogs/clonetiler.cpp:1832 +#: ../src/dialogs/clonetiler.cpp:1825 msgid "P1: simple translation" msgstr "P1 : translation" -#: ../src/dialogs/clonetiler.cpp:1833 +#: ../src/dialogs/clonetiler.cpp:1826 msgid "P2: 180° rotation" msgstr "P2 : rotation de 180°" -#: ../src/dialogs/clonetiler.cpp:1834 +#: ../src/dialogs/clonetiler.cpp:1827 msgid "PM: reflection" msgstr "PM : réflexion" #. TRANSLATORS: "glide reflection" is a reflection and a translation combined. #. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/dialogs/clonetiler.cpp:1837 +#: ../src/dialogs/clonetiler.cpp:1830 msgid "PG: glide reflection" msgstr "PG : réflexion glissée" -#: ../src/dialogs/clonetiler.cpp:1838 +#: ../src/dialogs/clonetiler.cpp:1831 msgid "CM: reflection + glide reflection" msgstr "CM : réflexion + réflexion glissée" -#: ../src/dialogs/clonetiler.cpp:1839 +#: ../src/dialogs/clonetiler.cpp:1832 msgid "PMM: reflection + reflection" msgstr "PMM : réflexion + réflexion" -#: ../src/dialogs/clonetiler.cpp:1840 +#: ../src/dialogs/clonetiler.cpp:1833 msgid "PMG: reflection + 180° rotation" msgstr "PMG : réflexion + rotation de 180°" -#: ../src/dialogs/clonetiler.cpp:1841 +#: ../src/dialogs/clonetiler.cpp:1834 msgid "PGG: glide reflection + 180° rotation" msgstr "PGG : réflexion glissée + rotation de 180°" -#: ../src/dialogs/clonetiler.cpp:1842 +#: ../src/dialogs/clonetiler.cpp:1835 msgid "CMM: reflection + reflection + 180° rotation" msgstr "CMM : réflexion + réflexion + rotation de 180°" -#: ../src/dialogs/clonetiler.cpp:1843 +#: ../src/dialogs/clonetiler.cpp:1836 msgid "P4: 90° rotation" msgstr "P4 : rotation de 90°" -#: ../src/dialogs/clonetiler.cpp:1844 +#: ../src/dialogs/clonetiler.cpp:1837 msgid "P4M: 90° rotation + 45° reflection" msgstr "P4M : rotation de 90° + réflexion à 45°" -#: ../src/dialogs/clonetiler.cpp:1845 +#: ../src/dialogs/clonetiler.cpp:1838 msgid "P4G: 90° rotation + 90° reflection" msgstr "P4G : rotation de 90° + réflexion à 90°" -#: ../src/dialogs/clonetiler.cpp:1846 +#: ../src/dialogs/clonetiler.cpp:1839 msgid "P3: 120° rotation" msgstr "P3 : rotation de 120°" -#: ../src/dialogs/clonetiler.cpp:1847 +#: ../src/dialogs/clonetiler.cpp:1840 msgid "P31M: reflection + 120° rotation, dense" msgstr "P31M : réflexion + rotation de 120°, dense" -#: ../src/dialogs/clonetiler.cpp:1848 +#: ../src/dialogs/clonetiler.cpp:1841 msgid "P3M1: reflection + 120° rotation, sparse" msgstr "P3M1 : réflexion + rotation de 120°, clairsemé" -#: ../src/dialogs/clonetiler.cpp:1849 +#: ../src/dialogs/clonetiler.cpp:1842 msgid "P6: 60° rotation" msgstr "P6 : rotation de 60°" -#: ../src/dialogs/clonetiler.cpp:1850 +#: ../src/dialogs/clonetiler.cpp:1843 msgid "P6M: reflection + 60° rotation" msgstr "P6M : réflexion + rotation de 60°" -#: ../src/dialogs/clonetiler.cpp:1878 +# See: +# http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples) +# http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary) +# http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary) +#: ../src/dialogs/clonetiler.cpp:1865 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "Sélectionner l’un de ces 17 groupes de symétrie pour le pavage" + +#: ../src/dialogs/clonetiler.cpp:1886 msgid "S_hift" msgstr "_Translation" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/dialogs/clonetiler.cpp:1888 +#: ../src/dialogs/clonetiler.cpp:1896 #, no-c-format msgid "Shift X:" msgstr "Translation X :" -#: ../src/dialogs/clonetiler.cpp:1896 +#: ../src/dialogs/clonetiler.cpp:1904 #, no-c-format msgid "Horizontal shift per row (in % of tile width)" msgstr "Translation horizontale à chaque ligne (en % de la largeur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:1904 +#: ../src/dialogs/clonetiler.cpp:1912 #, no-c-format msgid "Horizontal shift per column (in % of tile width)" msgstr "Translation horizontale à chaque colonne (en % de la largeur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:1910 +#: ../src/dialogs/clonetiler.cpp:1918 msgid "Randomize the horizontal shift by this percentage" msgstr "Introduire ce pourcentage de hasard dans la translation horizontale" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/dialogs/clonetiler.cpp:1920 +#: ../src/dialogs/clonetiler.cpp:1928 #, no-c-format msgid "Shift Y:" msgstr "Translation Y :" -#: ../src/dialogs/clonetiler.cpp:1928 +#: ../src/dialogs/clonetiler.cpp:1936 #, no-c-format msgid "Vertical shift per row (in % of tile height)" msgstr "Translation verticale à chaque ligne (en % de la hauteur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:1936 +#: ../src/dialogs/clonetiler.cpp:1944 #, no-c-format msgid "Vertical shift per column (in % of tile height)" msgstr "Translation verticale à chaque colonne (en % de la hauteur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:1943 +#: ../src/dialogs/clonetiler.cpp:1951 msgid "Randomize the vertical shift by this percentage" msgstr "Introduire ce pourcentage de hasard dans la translation verticale" -#: ../src/dialogs/clonetiler.cpp:1951 -#: ../src/dialogs/clonetiler.cpp:2097 +#: ../src/dialogs/clonetiler.cpp:1959 +#: ../src/dialogs/clonetiler.cpp:2105 msgid "Exponent:" msgstr "Exposant :" -#: ../src/dialogs/clonetiler.cpp:1958 +#: ../src/dialogs/clonetiler.cpp:1966 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "Selon la valeur, l’inter ligne reste constant (1), converge (<1) ou diverge (>1) " -#: ../src/dialogs/clonetiler.cpp:1965 +#: ../src/dialogs/clonetiler.cpp:1973 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "Selon la valeur, l’inter colonne reste constant (1), converge (<1) ou diverge (>1) " #. TRANSLATORS: "Alternate" is a verb here -#: ../src/dialogs/clonetiler.cpp:1973 -#: ../src/dialogs/clonetiler.cpp:2137 -#: ../src/dialogs/clonetiler.cpp:2213 -#: ../src/dialogs/clonetiler.cpp:2286 -#: ../src/dialogs/clonetiler.cpp:2332 -#: ../src/dialogs/clonetiler.cpp:2454 +#: ../src/dialogs/clonetiler.cpp:1981 +#: ../src/dialogs/clonetiler.cpp:2145 +#: ../src/dialogs/clonetiler.cpp:2221 +#: ../src/dialogs/clonetiler.cpp:2294 +#: ../src/dialogs/clonetiler.cpp:2340 +#: ../src/dialogs/clonetiler.cpp:2462 msgid "Alternate:" msgstr "Alterner :" -#: ../src/dialogs/clonetiler.cpp:1979 +#: ../src/dialogs/clonetiler.cpp:1987 msgid "Alternate the sign of shifts for each row" msgstr "Alterner le signe de la translation à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:1984 +#: ../src/dialogs/clonetiler.cpp:1992 msgid "Alternate the sign of shifts for each column" msgstr "Alterner le signe de la translation à chaque colonne" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:1991 -#: ../src/dialogs/clonetiler.cpp:2155 -#: ../src/dialogs/clonetiler.cpp:2231 +#: ../src/dialogs/clonetiler.cpp:1999 +#: ../src/dialogs/clonetiler.cpp:2163 +#: ../src/dialogs/clonetiler.cpp:2239 msgid "Cumulate:" msgstr "Cumulatif :" -#: ../src/dialogs/clonetiler.cpp:1997 +#: ../src/dialogs/clonetiler.cpp:2005 msgid "Cumulate the shifts for each row" msgstr "Décalage cumulatif des lignes" -#: ../src/dialogs/clonetiler.cpp:2002 +#: ../src/dialogs/clonetiler.cpp:2010 msgid "Cumulate the shifts for each column" msgstr "Décalage cumulatif des colonnes" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:2009 +#: ../src/dialogs/clonetiler.cpp:2017 msgid "Exclude tile:" msgstr "Exclure la taille du pavé :" -#: ../src/dialogs/clonetiler.cpp:2015 +#: ../src/dialogs/clonetiler.cpp:2023 msgid "Exclude tile height in shift" msgstr "Ne pas ajouter la hauteur du pavé au décalage" -#: ../src/dialogs/clonetiler.cpp:2020 +#: ../src/dialogs/clonetiler.cpp:2028 msgid "Exclude tile width in shift" msgstr "Ne pas ajouter la largeur du pavé au décalage" -#: ../src/dialogs/clonetiler.cpp:2029 +#: ../src/dialogs/clonetiler.cpp:2037 msgid "Sc_ale" msgstr "_Dimensions" -#: ../src/dialogs/clonetiler.cpp:2037 +#: ../src/dialogs/clonetiler.cpp:2045 msgid "Scale X:" msgstr "Échelle X :" -#: ../src/dialogs/clonetiler.cpp:2045 +#: ../src/dialogs/clonetiler.cpp:2053 #, no-c-format msgid "Horizontal scale per row (in % of tile width)" msgstr "Redimensionnement horizontal à chaque ligne (en % de la largeur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:2053 +#: ../src/dialogs/clonetiler.cpp:2061 #, no-c-format msgid "Horizontal scale per column (in % of tile width)" msgstr "Redimensionnement horizontal à chaque colonne (en % de la largeur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:2059 +#: ../src/dialogs/clonetiler.cpp:2067 msgid "Randomize the horizontal scale by this percentage" msgstr "Introduire ce pourcentage de hasard dans le redimensionnement horizontal" -#: ../src/dialogs/clonetiler.cpp:2067 +#: ../src/dialogs/clonetiler.cpp:2075 msgid "Scale Y:" msgstr "Échelle Y :" -#: ../src/dialogs/clonetiler.cpp:2075 +#: ../src/dialogs/clonetiler.cpp:2083 #, no-c-format msgid "Vertical scale per row (in % of tile height)" msgstr "Redimensionnement vertical à chaque ligne (en % de la hauteur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:2083 +#: ../src/dialogs/clonetiler.cpp:2091 #, no-c-format msgid "Vertical scale per column (in % of tile height)" msgstr "Redimensionnement vertical à chaque colonne (en % de la largeur du pavé de base)" -#: ../src/dialogs/clonetiler.cpp:2089 +#: ../src/dialogs/clonetiler.cpp:2097 msgid "Randomize the vertical scale by this percentage" msgstr "Introduire ce pourcentage de hasard dans le redimensionnement vertical" -#: ../src/dialogs/clonetiler.cpp:2103 +#: ../src/dialogs/clonetiler.cpp:2111 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "Selon la valeur, le redimensionnement des lignes est uniforme (1), converge (<1) ou diverge (>1) " -#: ../src/dialogs/clonetiler.cpp:2109 +#: ../src/dialogs/clonetiler.cpp:2117 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "Selon la valeur, le redimensionnement des colonnes est uniforme (1), converge (<1) ou diverge (>1) " -#: ../src/dialogs/clonetiler.cpp:2117 +#: ../src/dialogs/clonetiler.cpp:2125 msgid "Base:" msgstr "Base :" -#: ../src/dialogs/clonetiler.cpp:2123 -#: ../src/dialogs/clonetiler.cpp:2129 +#: ../src/dialogs/clonetiler.cpp:2131 +#: ../src/dialogs/clonetiler.cpp:2137 msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "Base pour une spirale logarithmique : inutilisée (0), converge (<1), ou diverge (>1)" -#: ../src/dialogs/clonetiler.cpp:2143 +#: ../src/dialogs/clonetiler.cpp:2151 msgid "Alternate the sign of scales for each row" msgstr "Alterner le signe du redimensionnement à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2148 +#: ../src/dialogs/clonetiler.cpp:2156 msgid "Alternate the sign of scales for each column" msgstr "Alterner le signe du redimensionnement à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2161 +#: ../src/dialogs/clonetiler.cpp:2169 msgid "Cumulate the scales for each row" msgstr "Cumuler le redimensionnement à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2166 +#: ../src/dialogs/clonetiler.cpp:2174 msgid "Cumulate the scales for each column" msgstr "Cumuler le redimensionnement à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2175 +#: ../src/dialogs/clonetiler.cpp:2183 msgid "_Rotation" msgstr "_Rotation" -#: ../src/dialogs/clonetiler.cpp:2183 +#: ../src/dialogs/clonetiler.cpp:2191 msgid "Angle:" msgstr "Angle :" -#: ../src/dialogs/clonetiler.cpp:2191 +#: ../src/dialogs/clonetiler.cpp:2199 #, no-c-format msgid "Rotate tiles by this angle for each row" msgstr "Faire tourner les pavés de cet angle à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2199 +#: ../src/dialogs/clonetiler.cpp:2207 #, no-c-format msgid "Rotate tiles by this angle for each column" msgstr "Faire tourner les pavés de cet angle à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2205 +#: ../src/dialogs/clonetiler.cpp:2213 msgid "Randomize the rotation angle by this percentage" msgstr "Introduire ce pourcentage de hasard dans l’angle de rotation" -#: ../src/dialogs/clonetiler.cpp:2219 +#: ../src/dialogs/clonetiler.cpp:2227 msgid "Alternate the rotation direction for each row" msgstr "Alterner le sens de la rotation à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2224 +#: ../src/dialogs/clonetiler.cpp:2232 msgid "Alternate the rotation direction for each column" msgstr "Alterner le sens de la rotation à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2237 +#: ../src/dialogs/clonetiler.cpp:2245 msgid "Cumulate the rotation for each row" msgstr "Cumuler l’angle de rotation à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2242 +#: ../src/dialogs/clonetiler.cpp:2250 msgid "Cumulate the rotation for each column" msgstr "Cumuler l’angle de rotation à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2251 +#: ../src/dialogs/clonetiler.cpp:2259 msgid "_Blur & opacity" msgstr "_Flou & opacité" -#: ../src/dialogs/clonetiler.cpp:2260 +#: ../src/dialogs/clonetiler.cpp:2268 msgid "Blur:" msgstr "Flou :" -#: ../src/dialogs/clonetiler.cpp:2266 +#: ../src/dialogs/clonetiler.cpp:2274 msgid "Blur tiles by this percentage for each row" msgstr "Rendre les pavés flous de ce pourcentage à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2272 +#: ../src/dialogs/clonetiler.cpp:2280 msgid "Blur tiles by this percentage for each column" msgstr "Rendre les pavés flous de ce pourcentage à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2278 +#: ../src/dialogs/clonetiler.cpp:2286 msgid "Randomize the tile blur by this percentage" msgstr "Introduire ce pourcentage de hasard dans le flou" -#: ../src/dialogs/clonetiler.cpp:2292 +#: ../src/dialogs/clonetiler.cpp:2300 msgid "Alternate the sign of blur change for each row" msgstr "Alterner le signe de la modification de flou à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2297 +#: ../src/dialogs/clonetiler.cpp:2305 msgid "Alternate the sign of blur change for each column" msgstr "Alterner le signe de la modification de flou à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2306 +#: ../src/dialogs/clonetiler.cpp:2314 msgid "Opacity:" msgstr "Opacité :" -#: ../src/dialogs/clonetiler.cpp:2312 +#: ../src/dialogs/clonetiler.cpp:2320 msgid "Decrease tile opacity by this percentage for each row" msgstr "Diminuer l’opacité des pavés de ce pourcentage à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2318 +#: ../src/dialogs/clonetiler.cpp:2326 msgid "Decrease tile opacity by this percentage for each column" msgstr "Diminuer l’opacité des pavés de ce pourcentage à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2324 +#: ../src/dialogs/clonetiler.cpp:2332 msgid "Randomize the tile opacity by this percentage" msgstr "Introduire ce pourcentage de hasard dans l’opacité" -#: ../src/dialogs/clonetiler.cpp:2338 +#: ../src/dialogs/clonetiler.cpp:2346 msgid "Alternate the sign of opacity change for each row" msgstr "Alterner le signe de la modification d’opacité à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2343 +#: ../src/dialogs/clonetiler.cpp:2351 msgid "Alternate the sign of opacity change for each column" msgstr "Alterner le signe de la modification d’opacité à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2351 +#: ../src/dialogs/clonetiler.cpp:2359 msgid "Co_lor" msgstr "Cou_leur" -#: ../src/dialogs/clonetiler.cpp:2356 +#: ../src/dialogs/clonetiler.cpp:2364 msgid "Initial color: " msgstr "Couleur initiale :" -#: ../src/dialogs/clonetiler.cpp:2360 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "Initial color of tiled clones" msgstr "Couleur initiale des clones de pavage" -#: ../src/dialogs/clonetiler.cpp:2360 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "Initial color for clones (works only if the original has unset fill or stroke)" msgstr "Couleur initiale pour les clones (ne fonctionne que si l’original a un remplissage ou un contour indéfini)" -#: ../src/dialogs/clonetiler.cpp:2375 +#: ../src/dialogs/clonetiler.cpp:2383 msgid "H:" msgstr "T :" -#: ../src/dialogs/clonetiler.cpp:2381 +#: ../src/dialogs/clonetiler.cpp:2389 msgid "Change the tile hue by this percentage for each row" msgstr "Modifier la teinte des pavés de ce pourcentage à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2387 +#: ../src/dialogs/clonetiler.cpp:2395 msgid "Change the tile hue by this percentage for each column" msgstr "Modifier la teinte des pavés de ce pourcentage à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2393 +#: ../src/dialogs/clonetiler.cpp:2401 msgid "Randomize the tile hue by this percentage" msgstr "Introduire ce pourcentage de hasard dans la modification de teinte" -#: ../src/dialogs/clonetiler.cpp:2402 +#: ../src/dialogs/clonetiler.cpp:2410 msgid "S:" msgstr "S :" -#: ../src/dialogs/clonetiler.cpp:2408 +#: ../src/dialogs/clonetiler.cpp:2416 msgid "Change the color saturation by this percentage for each row" msgstr "Modifier la saturation des pavés de ce pourcentage à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2414 +#: ../src/dialogs/clonetiler.cpp:2422 msgid "Change the color saturation by this percentage for each column" msgstr "Modifier la saturation des pavés de ce pourcentage à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2420 +#: ../src/dialogs/clonetiler.cpp:2428 msgid "Randomize the color saturation by this percentage" msgstr "Introduire ce pourcentage de hasard dans la modification de saturation" -#: ../src/dialogs/clonetiler.cpp:2428 +#: ../src/dialogs/clonetiler.cpp:2436 msgid "L:" msgstr "L :" -#: ../src/dialogs/clonetiler.cpp:2434 +#: ../src/dialogs/clonetiler.cpp:2442 msgid "Change the color lightness by this percentage for each row" msgstr "Modifier la luminosité des pavés de ce pourcentage à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2440 +#: ../src/dialogs/clonetiler.cpp:2448 msgid "Change the color lightness by this percentage for each column" msgstr "Modifier la luminosité des pavés de ce pourcentage à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2446 +#: ../src/dialogs/clonetiler.cpp:2454 msgid "Randomize the color lightness by this percentage" msgstr "Introduire ce pourcentage de hasard dans la modification de luminosité" -#: ../src/dialogs/clonetiler.cpp:2460 +#: ../src/dialogs/clonetiler.cpp:2468 msgid "Alternate the sign of color changes for each row" msgstr "Alterner le signe de la modification de couleur à chaque ligne" -#: ../src/dialogs/clonetiler.cpp:2465 +#: ../src/dialogs/clonetiler.cpp:2473 msgid "Alternate the sign of color changes for each column" msgstr "Alterner le signe de la modification de couleur à chaque colonne" -#: ../src/dialogs/clonetiler.cpp:2473 +#: ../src/dialogs/clonetiler.cpp:2481 msgid "_Trace" msgstr "_Calquer" -#: ../src/dialogs/clonetiler.cpp:2480 +#: ../src/dialogs/clonetiler.cpp:2488 msgid "Trace the drawing under the tiles" msgstr "Calquer depuis le dessin sous les pavés" -#: ../src/dialogs/clonetiler.cpp:2484 +#: ../src/dialogs/clonetiler.cpp:2492 msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone" msgstr "Pour chaque clone, capturer une valeur du dessin à l’emplacement du clone et l’appliquer au clone" -#: ../src/dialogs/clonetiler.cpp:2498 +#: ../src/dialogs/clonetiler.cpp:2506 msgid "1. Pick from the drawing:" msgstr "1. Capturer depuis le dessin :" -#: ../src/dialogs/clonetiler.cpp:2510 +#: ../src/dialogs/clonetiler.cpp:2518 msgid "Pick the visible color and opacity" msgstr "Capturer la couleur et l’opacité visibles" -#: ../src/dialogs/clonetiler.cpp:2517 -#: ../src/dialogs/clonetiler.cpp:2658 +#: ../src/dialogs/clonetiler.cpp:2525 +#: ../src/dialogs/clonetiler.cpp:2666 #: ../src/extension/internal/bitmap/opacity.cpp:37 -#: ../src/widgets/toolbox.cpp:4583 +#: ../src/widgets/toolbox.cpp:4601 #: ../share/extensions/interp_att_g.inx.h:14 msgid "Opacity" msgstr "Opacité" -#: ../src/dialogs/clonetiler.cpp:2518 +#: ../src/dialogs/clonetiler.cpp:2526 msgid "Pick the total accumulated opacity" msgstr "Capturer l’opacité cumulée" # Red (in RGB) -#: ../src/dialogs/clonetiler.cpp:2525 +#: ../src/dialogs/clonetiler.cpp:2533 msgid "R" msgstr "R" -#: ../src/dialogs/clonetiler.cpp:2526 +#: ../src/dialogs/clonetiler.cpp:2534 msgid "Pick the Red component of the color" msgstr "Capturer la composante Rouge de la couleur" # Green (in RGB) -#: ../src/dialogs/clonetiler.cpp:2533 +#: ../src/dialogs/clonetiler.cpp:2541 msgid "G" msgstr "V" -#: ../src/dialogs/clonetiler.cpp:2534 +#: ../src/dialogs/clonetiler.cpp:2542 msgid "Pick the Green component of the color" msgstr "Capturer la composante Verte de la couleur" # Blue (in RGB) -#: ../src/dialogs/clonetiler.cpp:2541 +#: ../src/dialogs/clonetiler.cpp:2549 msgid "B" msgstr "B" -#: ../src/dialogs/clonetiler.cpp:2542 +#: ../src/dialogs/clonetiler.cpp:2550 msgid "Pick the Blue component of the color" msgstr "Capturer la composante Bleue de la couleur" -#: ../src/dialogs/clonetiler.cpp:2549 +#: ../src/dialogs/clonetiler.cpp:2557 msgctxt "Clonetiler color hue" msgid "H" msgstr "T" -#: ../src/dialogs/clonetiler.cpp:2550 +#: ../src/dialogs/clonetiler.cpp:2558 msgid "Pick the hue of the color" msgstr "Capturer la teinte de la couleur" # Saturation (in HSL) -#: ../src/dialogs/clonetiler.cpp:2557 +#: ../src/dialogs/clonetiler.cpp:2565 msgctxt "Clonetiler color saturation" msgid "S" msgstr "S" -#: ../src/dialogs/clonetiler.cpp:2558 +#: ../src/dialogs/clonetiler.cpp:2566 msgid "Pick the saturation of the color" msgstr "Capturer la saturation de la couleur" # Luminosity (in HSL) -#: ../src/dialogs/clonetiler.cpp:2565 +#: ../src/dialogs/clonetiler.cpp:2573 msgctxt "Clonetiler color lightness" msgid "L" msgstr "L" -#: ../src/dialogs/clonetiler.cpp:2566 +#: ../src/dialogs/clonetiler.cpp:2574 msgid "Pick the lightness of the color" msgstr "Capturer la luminosité de la couleur" -#: ../src/dialogs/clonetiler.cpp:2576 +#: ../src/dialogs/clonetiler.cpp:2584 msgid "2. Tweak the picked value:" msgstr "2. Modifier la valeur capturée" -#: ../src/dialogs/clonetiler.cpp:2586 +#: ../src/dialogs/clonetiler.cpp:2594 msgid "Gamma-correct:" msgstr "Corriger le Gamma" -#: ../src/dialogs/clonetiler.cpp:2590 +#: ../src/dialogs/clonetiler.cpp:2598 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" msgstr "Décaler le milieu de la valeur capturée vers le haut (>0) ou vers le bas (<0)" -#: ../src/dialogs/clonetiler.cpp:2597 +#: ../src/dialogs/clonetiler.cpp:2605 msgid "Randomize:" msgstr "Hasard :" -#: ../src/dialogs/clonetiler.cpp:2601 +#: ../src/dialogs/clonetiler.cpp:2609 msgid "Randomize the picked value by this percentage" msgstr "Introduire ce pourcentage de hasard dans la capture de la valeur" -#: ../src/dialogs/clonetiler.cpp:2608 +#: ../src/dialogs/clonetiler.cpp:2616 msgid "Invert:" msgstr "Inverser :" -#: ../src/dialogs/clonetiler.cpp:2612 +#: ../src/dialogs/clonetiler.cpp:2620 msgid "Invert the picked value" msgstr "Inverser la valeur capturée" -#: ../src/dialogs/clonetiler.cpp:2618 +#: ../src/dialogs/clonetiler.cpp:2626 msgid "3. Apply the value to the clones':" msgstr "3. Appliquer la valeur aux clones :" -#: ../src/dialogs/clonetiler.cpp:2628 +#: ../src/dialogs/clonetiler.cpp:2636 msgid "Presence" msgstr "Présence" -#: ../src/dialogs/clonetiler.cpp:2631 +#: ../src/dialogs/clonetiler.cpp:2639 msgid "Each clone is created with the probability determined by the picked value in that point" msgstr "Chaque clone est créé selon une probabilité déterminée par la valeur capturée en ce point" -#: ../src/dialogs/clonetiler.cpp:2638 +#: ../src/dialogs/clonetiler.cpp:2646 msgid "Size" msgstr "Dimensions" -#: ../src/dialogs/clonetiler.cpp:2641 +#: ../src/dialogs/clonetiler.cpp:2649 msgid "Each clone's size is determined by the picked value in that point" msgstr "Les dimensions de chaque clone sont déterminées selon la valeur capturée en ce point " -#: ../src/dialogs/clonetiler.cpp:2651 +#: ../src/dialogs/clonetiler.cpp:2659 msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)" msgstr "Chaque clone est peint selon la couleur capturée (l’original doit avoir un remplissage ou un contour indéfini)" -#: ../src/dialogs/clonetiler.cpp:2661 +#: ../src/dialogs/clonetiler.cpp:2669 msgid "Each clone's opacity is determined by the picked value in that point" msgstr "L’opacité de chaque clone est déterminée par la valeur capturée en ce point" -#: ../src/dialogs/clonetiler.cpp:2688 +#: ../src/dialogs/clonetiler.cpp:2696 msgid "How many rows in the tiling" msgstr "Nombre de lignes du pavage" -#: ../src/dialogs/clonetiler.cpp:2708 +#: ../src/dialogs/clonetiler.cpp:2716 msgid "How many columns in the tiling" msgstr "Nombre de colonnes du pavage" -#: ../src/dialogs/clonetiler.cpp:2738 +#: ../src/dialogs/clonetiler.cpp:2746 msgid "Width of the rectangle to be filled" msgstr "Largeur du rectangle à remplir" -#: ../src/dialogs/clonetiler.cpp:2763 +#: ../src/dialogs/clonetiler.cpp:2771 msgid "Height of the rectangle to be filled" msgstr "Hauteur du rectangle à remplir" -#: ../src/dialogs/clonetiler.cpp:2778 +#: ../src/dialogs/clonetiler.cpp:2786 msgid "Rows, columns: " msgstr "Lignes, colonnes :" -#: ../src/dialogs/clonetiler.cpp:2779 +#: ../src/dialogs/clonetiler.cpp:2787 msgid "Create the specified number of rows and columns" msgstr "Créer le nombre spécifié de lignes et de colonnes" -#: ../src/dialogs/clonetiler.cpp:2788 +#: ../src/dialogs/clonetiler.cpp:2796 msgid "Width, height: " msgstr "Largeur, hauteur :" -#: ../src/dialogs/clonetiler.cpp:2789 +#: ../src/dialogs/clonetiler.cpp:2797 msgid "Fill the specified width and height with the tiling" msgstr "Remplir avec le pavage selon la hauteur et la largeur spécifiées" -#: ../src/dialogs/clonetiler.cpp:2805 +#: ../src/dialogs/clonetiler.cpp:2813 msgid "Use saved size and position of the tile" msgstr "Utiliser les dimensions et position enregistrées du pavage" -#: ../src/dialogs/clonetiler.cpp:2808 +#: ../src/dialogs/clonetiler.cpp:2816 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" msgstr "Utiliser les mêmes dimensions et position de pavés que lors du pavage précédent (si possible), au lieu d’utiliser les paramètres courants" -#: ../src/dialogs/clonetiler.cpp:2832 +#: ../src/dialogs/clonetiler.cpp:2840 msgid " _Create " msgstr " _Créer " -#: ../src/dialogs/clonetiler.cpp:2834 +#: ../src/dialogs/clonetiler.cpp:2842 msgid "Create and tile the clones of the selection" msgstr "Créer des clones et paver la sélection avec" @@ -4470,28 +4504,28 @@ msgstr "Créer des clones et paver la sélection avec" #. 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/dialogs/clonetiler.cpp:2849 +#: ../src/dialogs/clonetiler.cpp:2857 msgid " _Unclump " msgstr "É_parpiller" -#: ../src/dialogs/clonetiler.cpp:2850 +#: ../src/dialogs/clonetiler.cpp:2858 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "Disperser les clones de façon à reduire le rassemblement; peut être appliqué plusieurs fois" -#: ../src/dialogs/clonetiler.cpp:2856 +#: ../src/dialogs/clonetiler.cpp:2864 msgid " Re_move " msgstr "_Supprimer" -#: ../src/dialogs/clonetiler.cpp:2857 +#: ../src/dialogs/clonetiler.cpp:2865 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "Retirer les clones de pavage de l’objet sélectionné (seulement les « enfants de mêmes parents »)" -#: ../src/dialogs/clonetiler.cpp:2873 +#: ../src/dialogs/clonetiler.cpp:2881 msgid " R_eset " msgstr " R-à-_z" #. TRANSLATORS: "change" is a noun here -#: ../src/dialogs/clonetiler.cpp:2875 +#: ../src/dialogs/clonetiler.cpp:2883 msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero" msgstr "Remise à zéro de tous les décalages, redimensionnements, rotation et opacités dans la boîte de dialogue" @@ -4577,8 +4611,8 @@ msgid "_Height:" msgstr "_Hauteur :" #: ../src/dialogs/export.cpp:512 -#: ../src/ui/dialog/inkscape-preferences.cpp:836 -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "dpi" msgstr "ppp" @@ -4758,7 +4792,7 @@ msgstr "Rechercher les chemins, lignes, polylignes" #: ../src/dialogs/find.cpp:604 #: ../src/ui/dialog/find.cpp:78 -#: ../src/widgets/toolbox.cpp:2335 +#: ../src/widgets/toolbox.cpp:2340 msgid "Paths" msgstr "Chemins" @@ -5107,10 +5141,10 @@ msgstr "Y :" #: ../src/extension/internal/bitmap/sample.cpp:40 #: ../src/extension/internal/bluredge.cpp:136 #: ../src/extension/internal/filter/abc.h:574 -#: ../src/widgets/toolbox.cpp:4377 -#: ../src/widgets/toolbox.cpp:4691 -#: ../src/widgets/toolbox.cpp:5186 -#: ../src/widgets/toolbox.cpp:6248 +#: ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 +#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:6266 #: ../share/extensions/foldablebox.inx.h:9 msgid "Width:" msgstr "Épaisseur :" @@ -5242,12 +5276,12 @@ msgid "Justify lines" msgstr "Justifier les lignes" #: ../src/dialogs/text-edit.cpp:304 -#: ../src/widgets/toolbox.cpp:7737 +#: ../src/widgets/toolbox.cpp:7755 msgid "Horizontal text" msgstr "Texte horizontal" #: ../src/dialogs/text-edit.cpp:318 -#: ../src/widgets/toolbox.cpp:7744 +#: ../src/widgets/toolbox.cpp:7762 msgid "Vertical text" msgstr "Texte vertical" @@ -5255,17 +5289,16 @@ msgstr "Texte vertical" msgid "Line spacing:" msgstr "Espacement entre les lignes :" -#: ../src/dialogs/text-edit.cpp:407 +#: ../src/dialogs/text-edit.cpp:389 #: ../src/menus-skeleton.h:237 msgid "_Text" msgstr "_Texte" -#: ../src/dialogs/text-edit.cpp:454 -#, fuzzy +#: ../src/dialogs/text-edit.cpp:436 msgid "Set as _default" -msgstr "Enregistrer comme valeur par défaut" +msgstr "Définir comme valeur par _défaut" -#: ../src/dialogs/text-edit.cpp:713 +#: ../src/dialogs/text-edit.cpp:695 #: ../src/text-context.cpp:1518 msgid "Set text style" msgstr "Appliquer un style à un texte" @@ -5276,9 +5309,9 @@ msgstr "Appliquer un style à un texte" #. * text has been entered) to get a preview of the font. Choose #. * some representative characters that users of your locale will be #. * interested in. -#: ../src/dialogs/text-edit.cpp:750 -#: ../src/dialogs/text-edit.cpp:896 -#: ../src/dialogs/text-edit.cpp:949 +#: ../src/dialogs/text-edit.cpp:732 +#: ../src/dialogs/text-edit.cpp:868 +#: ../src/dialogs/text-edit.cpp:921 msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "AaBbCcIiPpQq12369$€¢?.;/()" @@ -5348,8 +5381,8 @@ msgstr "Nom de l’attribut" #. TRANSLATORS: "Set" is a verb here #: ../src/dialogs/xml-tree.cpp:524 -#: ../src/widgets/sp-attribute-widget.cpp:159 -#: ../src/widgets/sp-attribute-widget.cpp:765 +#: ../src/widgets/sp-attribute-widget.cpp:157 +#: ../src/widgets/sp-attribute-widget.cpp:759 msgid "Set attribute" msgstr "Définir l’attribut" @@ -5407,8 +5440,8 @@ msgstr "_Origine X :" #: ../src/display/canvas-axonomgrid.cpp:358 #: ../src/display/canvas-grid.cpp:676 -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "X coordinate of grid origin" msgstr "Coordonnée X de l’origine de la grille" @@ -5419,8 +5452,8 @@ msgstr "O_rigine Y :" #: ../src/display/canvas-axonomgrid.cpp:360 #: ../src/display/canvas-grid.cpp:678 -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Y coordinate of grid origin" msgstr "Coordonnée Y de l’origine de la grille" @@ -5430,29 +5463,29 @@ msgid "Spacing _Y:" msgstr "Espacement _Y :" #: ../src/display/canvas-axonomgrid.cpp:362 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Base length of z-axis" msgstr "Longueur de base de l’axe z" #: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 -#: ../src/widgets/toolbox.cpp:3690 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle X:" msgstr "Angle X :" #: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 msgid "Angle of x-axis" msgstr "Angle de l’axe x" #: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 -#: ../src/widgets/toolbox.cpp:3769 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle Z:" msgstr "Angle Z :" #: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "Angle of z-axis" msgstr "Angle de l’axe z" @@ -5537,12 +5570,12 @@ msgid "Spacing _X:" msgstr "Espacement _X :" #: ../src/display/canvas-grid.cpp:680 -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Distance between vertical grid lines" msgstr "Distance entre les lignes verticales de la grille" #: ../src/display/canvas-grid.cpp:682 -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 msgid "Distance between horizontal grid lines" msgstr "Distance entre les lignes horizontales de la grille" @@ -5557,8 +5590,8 @@ msgstr "Cocher pour afficher des points sur les points entiers de la grille au l #. TRANSLATORS: undefined target for snapping #: ../src/display/snap-indicator.cpp:70 #: ../src/display/snap-indicator.cpp:73 -#: ../src/display/snap-indicator.cpp:158 #: ../src/display/snap-indicator.cpp:161 +#: ../src/display/snap-indicator.cpp:164 msgid "UNDEFINED" msgstr "INDÉFINI" @@ -5655,88 +5688,92 @@ msgid "corner" msgstr "coin" #: ../src/display/snap-indicator.cpp:145 +msgid "text anchor" +msgstr "ancre de texte" + +#: ../src/display/snap-indicator.cpp:148 msgid "text baseline" msgstr "ligne de base de texte" -#: ../src/display/snap-indicator.cpp:148 +#: ../src/display/snap-indicator.cpp:151 msgid "constrained angle" msgstr "angle contraint" -#: ../src/display/snap-indicator.cpp:151 +#: ../src/display/snap-indicator.cpp:154 msgid "constraint" msgstr "Contrainte" -#: ../src/display/snap-indicator.cpp:164 +#: ../src/display/snap-indicator.cpp:167 msgid "Bounding box corner" msgstr "Coin de boîte englobante" -#: ../src/display/snap-indicator.cpp:167 +#: ../src/display/snap-indicator.cpp:170 msgid "Bounding box midpoint" msgstr "Centre de boîte englobante" -#: ../src/display/snap-indicator.cpp:170 +#: ../src/display/snap-indicator.cpp:173 msgid "Bounding box side midpoint" msgstr "Milieu de bord de boîte englobante" -#: ../src/display/snap-indicator.cpp:173 +#: ../src/display/snap-indicator.cpp:176 #: ../src/ui/tool/node.cpp:1231 msgid "Smooth node" msgstr "Nœuds doux" -#: ../src/display/snap-indicator.cpp:176 +#: ../src/display/snap-indicator.cpp:179 #: ../src/ui/tool/node.cpp:1230 msgid "Cusp node" msgstr "Point de rebroussement" -#: ../src/display/snap-indicator.cpp:179 +#: ../src/display/snap-indicator.cpp:182 msgid "Line midpoint" msgstr "Milieu de ligne" -#: ../src/display/snap-indicator.cpp:182 +#: ../src/display/snap-indicator.cpp:185 msgid "Object midpoint" msgstr "Centre d’objet" -#: ../src/display/snap-indicator.cpp:185 +#: ../src/display/snap-indicator.cpp:188 msgid "Object rotation center" msgstr "Centre de rotation d’objet" -#: ../src/display/snap-indicator.cpp:189 +#: ../src/display/snap-indicator.cpp:192 msgid "Handle" msgstr "Poignée" -#: ../src/display/snap-indicator.cpp:192 +#: ../src/display/snap-indicator.cpp:195 msgid "Path intersection" msgstr "Intersections de chemin" -#: ../src/display/snap-indicator.cpp:195 +#: ../src/display/snap-indicator.cpp:198 msgid "Guide" msgstr "Guide" -#: ../src/display/snap-indicator.cpp:198 +#: ../src/display/snap-indicator.cpp:201 msgid "Guide origin" msgstr "Origine du guide" -#: ../src/display/snap-indicator.cpp:201 +#: ../src/display/snap-indicator.cpp:204 msgid "Convex hull corner" msgstr "Coin de l’enveloppe convexe" -#: ../src/display/snap-indicator.cpp:204 +#: ../src/display/snap-indicator.cpp:207 msgid "Quadrant point" msgstr "Point de quadrant" -#: ../src/display/snap-indicator.cpp:207 +#: ../src/display/snap-indicator.cpp:210 msgid "Corner" msgstr "Coin" -#: ../src/display/snap-indicator.cpp:210 -msgid "Text baseline" -msgstr "Ligne de base de texte" - #: ../src/display/snap-indicator.cpp:213 +msgid "Text anchor" +msgstr "Ancre de texte" + +#: ../src/display/snap-indicator.cpp:216 msgid "Multiple of grid spacing" msgstr "Multiple d’espacement de grille" -#: ../src/display/snap-indicator.cpp:244 +#: ../src/display/snap-indicator.cpp:247 msgid " to " msgstr " à " @@ -5976,7 +6013,7 @@ msgstr "Désactivée" 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 this extension." msgstr "Aucune aide n’est actuellement disponible pour cette extension. Veuillez vous référer au site internet d’Inkscape ou aux listes de diffusion pour toute question relative à celle-ci." -#: ../src/extension/implementation/script.cpp:989 +#: ../src/extension/implementation/script.cpp:990 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 expected." msgstr "Inkscape a reçu des données additionnelles du script exécuté. Le script n’a pas retourné d’erreur, mais ceci peut indiquer que les résultats ne sont pas ceux attendus." @@ -5998,7 +6035,7 @@ msgstr "Seuil adaptatif" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 #: ../src/extension/internal/filter/color.h:540 #: ../src/extension/internal/filter/experimental.h:355 -#: ../src/widgets/gradient-vector.cpp:825 +#: ../src/widgets/gradient-vector.cpp:824 #: ../share/extensions/printing-marks.inx.h:9 msgid "Offset:" msgstr "Décalage :" @@ -6193,7 +6230,7 @@ msgstr "Cycle des couleurs" #: ../src/extension/internal/bitmap/cycleColormap.cpp:38 #: ../src/extension/internal/bitmap/spread.cpp:38 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#: ../src/widgets/toolbox.cpp:4783 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount:" msgstr "Quantité :" @@ -6353,7 +6390,7 @@ msgstr "Styliser les bitmaps sélectionnés en leur donnant l’apparence d’un #: ../src/extension/internal/bitmap/opacity.cpp:39 #: ../src/ui/dialog/filter-effects-dialog.cpp:2240 -#: ../src/widgets/toolbox.cpp:5778 +#: ../src/widgets/toolbox.cpp:5796 msgid "Opacity:" msgstr "Opacité :" @@ -6451,11 +6488,11 @@ msgstr "Seuil" #: ../src/extension/internal/bitmap/threshold.cpp:39 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 #: ../src/ui/dialog/tracedialog.cpp:420 #: ../src/ui/dialog/tracedialog.cpp:453 #: ../src/ui/dialog/tracedialog.cpp:596 -#: ../src/widgets/toolbox.cpp:8521 +#: ../src/widgets/toolbox.cpp:8539 msgid "Threshold:" msgstr "Seuil :" @@ -6700,7 +6737,7 @@ msgstr "Flou vertical :" #: ../src/extension/internal/filter/morphology.h:61 #: ../src/extension/internal/filter/shadows.h:76 #: ../src/extension/internal/filter/snow.h:38 -#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 msgid "Filters" msgstr "Filtres" @@ -6792,9 +6829,8 @@ msgstr "Azimut (°) :" #: ../src/extension/internal/filter/abc.h:240 #: ../src/extension/internal/filter/abc.h:378 #: ../src/extension/internal/filter/abc.h:818 -#, fuzzy -msgid "Lightning color" -msgstr "Couleur d’emp_hase :" +msgid "Lighting color" +msgstr "Couleur d'éclairage :" #: ../src/extension/internal/filter/abc.h:311 msgid "Feather, custom (ABCs)" @@ -6919,9 +6955,8 @@ msgid "Lightness:" msgstr "Luminosité :" #: ../src/extension/internal/filter/color.h:75 -#, fuzzy msgid "Brightness filter" -msgstr "Niveaux de luminosité" +msgstr "Filtre de luminosité" #: ../src/extension/internal/filter/color.h:130 msgid "Colorize, custom (Color)" @@ -6957,7 +6992,7 @@ msgstr "Produit" #: ../src/extension/internal/filter/color.h:784 #: ../src/extension/internal/filter/color.h:797 #: ../src/filter-enums.cpp:51 -#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:597 msgid "Normal" msgstr "Normal" @@ -7105,9 +7140,8 @@ msgid "Lightness, custom (Color)" msgstr "Clarté, paramétrable (Couleur)" #: ../src/extension/internal/filter/color.h:538 -#, fuzzy msgid "Lights:" -msgstr "Droits :" +msgstr "Lumières :" #: ../src/extension/internal/filter/color.h:539 msgid "Shadows:" @@ -7273,7 +7307,7 @@ msgid "Clean-up:" msgstr "Nettoyage :" #: ../src/extension/internal/filter/experimental.h:237 -#: ../src/widgets/toolbox.cpp:8348 +#: ../src/widgets/toolbox.cpp:8366 msgid "Length:" msgstr "Longueur :" @@ -7435,11 +7469,11 @@ msgstr "Ombre portée, paramétrable (Ombres et lueurs)" #: ../share/extensions/dots.inx.h:5 #: ../share/extensions/dxf_input.inx.h:15 #: ../share/extensions/dxf_outlines.inx.h:9 -#: ../share/extensions/gcodetools_all_in_one.inx.h:33 -#: ../share/extensions/gcodetools_area.inx.h:22 -#: ../share/extensions/gcodetools_engraving.inx.h:16 -#: ../share/extensions/gcodetools_lathe.inx.h:22 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 #: ../share/extensions/generate_voronoi.inx.h:7 #: ../share/extensions/gimp_xcf.inx.h:4 #: ../share/extensions/interp_att_g.inx.h:15 @@ -7580,9 +7614,9 @@ msgid "Render" msgstr "Rendu" #: ../src/extension/internal/grid.cpp:211 -#: ../src/ui/dialog/document-properties.cpp:120 -#: ../src/ui/dialog/inkscape-preferences.cpp:1082 -#: ../src/widgets/toolbox.cpp:2415 +#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +#: ../src/widgets/toolbox.cpp:2430 msgid "Grids" msgstr "Grilles" @@ -8084,7 +8118,7 @@ msgstr "Luminance vers opacité" #. File #: ../src/filter-enums.cpp:70 -#: ../src/interface.cpp:852 +#: ../src/interface.cpp:848 #: ../src/verbs.cpp:2244 #: ../share/extensions/jessyInk_mouseHandler.inx.h:1 #: ../share/extensions/jessyInk_transitions.inx.h:2 @@ -8139,19 +8173,24 @@ msgstr "Retour à la ligne" #: ../src/filter-enums.cpp:94 #: ../src/live_effects/lpe-ruler.cpp:34 -#: ../src/ui/dialog/document-properties.cpp:327 #: ../src/ui/dialog/filter-effects-dialog.cpp:477 -#: ../src/ui/dialog/inkscape-preferences.cpp:267 -#: ../src/ui/dialog/inkscape-preferences.cpp:433 -#: ../src/ui/dialog/inkscape-preferences.cpp:595 -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 -#: ../src/ui/dialog/inkscape-preferences.cpp:1297 +#: ../src/ui/dialog/inkscape-preferences.cpp:268 +#: ../src/ui/dialog/inkscape-preferences.cpp:434 +#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 #: ../src/ui/dialog/input.cpp:607 #: ../src/ui/dialog/input.cpp:608 #: ../src/ui/dialog/input.cpp:1269 #: ../src/verbs.cpp:2241 #: ../src/widgets/stroke-style.cpp:366 -#: ../src/widgets/toolbox.cpp:4153 +#: ../src/widgets/toolbox.cpp:4171 +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 #: ../share/extensions/grid_polar.inx.h:18 #: ../share/extensions/guides_creator.inx.h:15 #: ../share/extensions/scour.inx.h:16 @@ -8160,7 +8199,7 @@ msgstr "Aucun" #: ../src/filter-enums.cpp:100 #: ../src/flood-context.cpp:241 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:403 #: ../src/widgets/sp-color-scales.cpp:404 msgid "Red" @@ -8168,7 +8207,7 @@ msgstr "Rouge" #: ../src/filter-enums.cpp:101 #: ../src/flood-context.cpp:242 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:406 #: ../src/widgets/sp-color-scales.cpp:407 msgid "Green" @@ -8176,7 +8215,7 @@ msgstr "Vert" #: ../src/filter-enums.cpp:102 #: ../src/flood-context.cpp:243 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:409 #: ../src/widgets/sp-color-scales.cpp:410 msgid "Blue" @@ -8216,31 +8255,31 @@ msgid "Visible Colors" msgstr "Couleurs visibles" #: ../src/flood-context.cpp:244 -#: ../src/widgets/sp-color-icc-selector.cpp:229 #: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:429 #: ../src/widgets/sp-color-scales.cpp:430 -#: ../src/widgets/toolbox.cpp:4535 +#: ../src/widgets/toolbox.cpp:4553 #: ../share/extensions/color_randomize.inx.h:4 msgid "Hue" msgstr "Teinte" #: ../src/flood-context.cpp:245 -#: ../src/ui/dialog/inkscape-preferences.cpp:898 -#: ../src/widgets/sp-color-icc-selector.cpp:229 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 #: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:432 #: ../src/widgets/sp-color-scales.cpp:433 -#: ../src/widgets/toolbox.cpp:4551 +#: ../src/widgets/toolbox.cpp:4569 #: ../share/extensions/color_randomize.inx.h:8 msgid "Saturation" msgstr "Saturation" #: ../src/flood-context.cpp:246 -#: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:435 #: ../src/widgets/sp-color-scales.cpp:436 -#: ../src/widgets/toolbox.cpp:4567 +#: ../src/widgets/toolbox.cpp:4585 #: ../share/extensions/color_randomize.inx.h:5 msgid "Lightness" msgstr "Luminosité" @@ -8398,7 +8437,7 @@ msgstr[1] "Aucune poignée sélectionnée sur %d dans %d objets sélectio #: ../src/gradient-context.cpp:390 #: ../src/gradient-context.cpp:483 #: ../src/ui/dialog/swatches.cpp:182 -#: ../src/widgets/gradient-vector.cpp:742 +#: ../src/widgets/gradient-vector.cpp:741 msgid "Add gradient stop" msgstr "Ajouter un stop au dégradé" @@ -8410,30 +8449,30 @@ msgstr "Simplifier le dégradé" msgid "Create default gradient" msgstr "Créer un dégradé par défaut" -#: ../src/gradient-context.cpp:590 +#: ../src/gradient-context.cpp:592 msgid "Draw around handles to select them" msgstr "Dessiner autour des poignées pour les sélectionner" -#: ../src/gradient-context.cpp:699 +#: ../src/gradient-context.cpp:701 msgid "Ctrl: snap gradient angle" msgstr "Ctrl : pour forcer la modification de l’inclinaison du dégradé par incréments" -#: ../src/gradient-context.cpp:700 +#: ../src/gradient-context.cpp:702 msgid "Shift: draw gradient around the starting point" msgstr "Maj : pour dessiner le dégradé autour du point de départ" -#: ../src/gradient-context.cpp:820 +#: ../src/gradient-context.cpp:822 msgid "Invert gradient" msgstr "Inverser le dégradé" -#: ../src/gradient-context.cpp:937 +#: ../src/gradient-context.cpp:939 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" msgstr[0] "Dégradé appliqué à %d objet; déplacer avec Ctrl pour forcer la modification de l’inclinaison par incréments" msgstr[1] "Dégradé appliqué à %d objets; déplacer avec Ctrl pour forcer la modification de l’inclinaison par incréments" -#: ../src/gradient-context.cpp:941 +#: ../src/gradient-context.cpp:943 msgid "Select objects on which to create gradient." msgstr "Sélectionner des objets auxquels appliquer un dégradé." @@ -8446,7 +8485,7 @@ msgid "Move gradient handle" msgstr "Déplacer la poignée de dégradé" #: ../src/gradient-drag.cpp:988 -#: ../src/widgets/gradient-vector.cpp:773 +#: ../src/widgets/gradient-vector.cpp:772 msgid "Delete gradient stop" msgstr "Supprimer un stop de dégradé" @@ -8496,11 +8535,11 @@ msgstr "Unité" #. Add the units menu. #: ../src/helper/units.cpp:37 -#: ../src/widgets/select-toolbar.cpp:514 +#: ../src/widgets/select-toolbar.cpp:521 #: ../src/widgets/toolbox.cpp:1597 -#: ../src/widgets/toolbox.cpp:3420 -#: ../src/widgets/toolbox.cpp:6138 -#: ../src/widgets/toolbox.cpp:8540 +#: ../src/widgets/toolbox.cpp:3438 +#: ../src/widgets/toolbox.cpp:6156 +#: ../src/widgets/toolbox.cpp:8558 #: ../share/extensions/dxf_outlines.inx.h:10 msgid "Units" msgstr "Unités" @@ -8566,7 +8605,7 @@ msgid "Percent" msgstr "Pourcent" #: ../src/helper/units.cpp:42 -#: ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "%" msgstr "%" @@ -8582,6 +8621,13 @@ msgstr "Millimètre" #: ../src/ui/widget/selected-style.cpp:298 #: ../share/extensions/dxf_outlines.inx.h:15 #: ../share/extensions/gears.inx.h:9 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 msgid "mm" msgstr "mm" @@ -8623,6 +8669,13 @@ msgstr "Pouce" #: ../src/helper/units.cpp:46 #: ../share/extensions/dxf_outlines.inx.h:13 #: ../share/extensions/gears.inx.h:8 +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 msgid "in" msgstr "in" @@ -8707,121 +8760,121 @@ msgstr "Les enregistrements automatiques des documents suivants ont échoué :\ #. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu", #. checkitem_toggled, checkitem_update, 0); -#: ../src/interface.cpp:830 +#: ../src/interface.cpp:826 msgid "_Commands Bar" msgstr "Barre des _commandes" -#: ../src/interface.cpp:830 +#: ../src/interface.cpp:826 msgid "Show or hide the Commands bar (under the menu)" msgstr "Afficher ou non la barre des commandes (sous le menu)" -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:828 msgid "Sn_ap Controls Bar" msgstr "Barre des contrôles du m_agnétisme" -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:828 msgid "Show or hide the snapping controls" msgstr "Afficher ou non la barre des contrôles du magnétisme" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:830 msgid "T_ool Controls Bar" msgstr "Barre des contrôles d’_outils" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:830 msgid "Show or hide the Tool Controls bar" msgstr "Afficher ou non la barre des contrôles d’outils" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:832 msgid "_Toolbox" msgstr "Boîte à _outils" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:832 msgid "Show or hide the main toolbox (on the left)" msgstr "Afficher ou non la boîte à outils principale (à gauche)" -#: ../src/interface.cpp:842 +#: ../src/interface.cpp:838 msgid "_Palette" msgstr "_Palette" -#: ../src/interface.cpp:842 +#: ../src/interface.cpp:838 msgid "Show or hide the color palette" msgstr "Afficher ou non la palette de couleurs" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:840 msgid "_Statusbar" msgstr "Barre d'_état" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:840 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Afficher ou non la barre d’état (en bas de la fenêtre)" -#: ../src/interface.cpp:852 +#: ../src/interface.cpp:848 msgid "Default interface setup" msgstr "Paramètres par défaut de l’interface" -#: ../src/interface.cpp:853 +#: ../src/interface.cpp:849 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1437 #: ../share/extensions/color_custom.inx.h:10 #: ../share/extensions/markers_strokepaint.inx.h:5 msgid "Custom" msgstr "Personnalisée" -#: ../src/interface.cpp:853 +#: ../src/interface.cpp:849 msgid "Set the custom task" msgstr "Définir une tâche personnalisée" -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:850 msgid "Wide" msgstr "Large" -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:850 msgid "Setup for widescreen work" msgstr "Paramétrage pour écran large" -#: ../src/interface.cpp:951 +#: ../src/interface.cpp:947 #, c-format msgid "Verb \"%s\" Unknown" msgstr "Verbe « %s » inconnu" -#: ../src/interface.cpp:993 +#: ../src/interface.cpp:989 msgid "Open _Recent" msgstr "Documents _récents" #. TRANSLATORS: #%s is the id of the group e.g. , not a number. -#: ../src/interface.cpp:1098 +#: ../src/interface.cpp:1094 #, c-format msgid "Enter group #%s" msgstr "Entrer dans le groupe #%s" -#: ../src/interface.cpp:1109 +#: ../src/interface.cpp:1105 msgid "Go to parent" msgstr "Sélectionner le parent" -#: ../src/interface.cpp:1200 -#: ../src/interface.cpp:1286 -#: ../src/interface.cpp:1389 +#: ../src/interface.cpp:1196 +#: ../src/interface.cpp:1282 +#: ../src/interface.cpp:1385 #: ../src/ui/widget/selected-style.cpp:469 msgid "Drop color" msgstr "Déposer la couleur" -#: ../src/interface.cpp:1239 -#: ../src/interface.cpp:1349 +#: ../src/interface.cpp:1235 +#: ../src/interface.cpp:1345 msgid "Drop color on gradient" msgstr "Déposer la couleur dans le dégradé" -#: ../src/interface.cpp:1402 +#: ../src/interface.cpp:1398 msgid "Could not parse SVG data" msgstr "Impossible de parcourir les données SVG" -#: ../src/interface.cpp:1441 +#: ../src/interface.cpp:1437 msgid "Drop SVG" msgstr "Déposer un SVG" -#: ../src/interface.cpp:1475 +#: ../src/interface.cpp:1471 msgid "Drop bitmap image" msgstr "Déposer une image bitmap" -#: ../src/interface.cpp:1567 +#: ../src/interface.cpp:1563 #, c-format msgid "" "A file named \"%s\" already exists. Do you want to replace it?\n" @@ -8833,7 +8886,7 @@ msgstr "" "\n" "Le fichier existe déjà dans « %s ». Le remplacer écrase son contenu." -#: ../src/interface.cpp:1574 +#: ../src/interface.cpp:1570 #: ../share/extensions/web-set-att.inx.h:7 #: ../share/extensions/web-transmit-att.inx.h:7 msgid "Replace" @@ -8880,13 +8933,13 @@ msgstr "Style de barre détachable" msgid "Dockbar style to show items on it" msgstr "Style de barre d’attache pour l’affichage de ses éléments" -#: ../src/libgdl/gdl-dock-item-grip.c:386 -msgid "Iconify" -msgstr "Iconifier" +#: ../src/libgdl/gdl-dock-item-grip.c:379 +msgid "Iconify this dock" +msgstr "Iconifier ce point d’attache" -#: ../src/libgdl/gdl-dock-item-grip.c:388 -msgid "Close" -msgstr "Fermer" +#: ../src/libgdl/gdl-dock-item-grip.c:381 +msgid "Close this dock" +msgstr "Fermer ce point d’attache" #: ../src/libgdl/gdl-dock-item-grip.c:703 #: ../src/libgdl/gdl-dock-tablabel.c:128 @@ -8898,138 +8951,139 @@ msgid "Dockitem which 'owns' this grip" msgstr "Élément d’attache qui « possède » cette prise" #. Name -#: ../src/libgdl/gdl-dock-item.c:286 -#: ../src/widgets/toolbox.cpp:7749 -#: ../share/extensions/gcodetools_all_in_one.inx.h:34 +#: ../src/libgdl/gdl-dock-item.c:297 +#: ../src/widgets/toolbox.cpp:7767 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_orientation_points.inx.h:6 msgid "Orientation" msgstr "Orientation" -#: ../src/libgdl/gdl-dock-item.c:287 +#: ../src/libgdl/gdl-dock-item.c:298 msgid "Orientation of the docking item" msgstr "Orientation des éléments détachables" -#: ../src/libgdl/gdl-dock-item.c:302 +#: ../src/libgdl/gdl-dock-item.c:313 msgid "Resizable" msgstr "Redimensionnable" -#: ../src/libgdl/gdl-dock-item.c:303 -msgid "If set, the dock item can be resized when docked in a panel" +#: ../src/libgdl/gdl-dock-item.c:314 +#, fuzzy +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" msgstr "Si coché, l’élément détachable peut être redimensionné quand il est attaché à un panneau" -#: ../src/libgdl/gdl-dock-item.c:310 +#: ../src/libgdl/gdl-dock-item.c:321 msgid "Item behavior" msgstr "Comportement de l’élément" -#: ../src/libgdl/gdl-dock-item.c:311 +#: ../src/libgdl/gdl-dock-item.c:322 msgid "General behavior for the dock item (i.e. whether it can float, if it's locked, etc.)" msgstr "Comportement général de l’élément détachable (par ex, s’il peut flotter, s’il est verouillé, etc...)" -#: ../src/libgdl/gdl-dock-item.c:319 -#: ../src/libgdl/gdl-dock-master.c:151 +#: ../src/libgdl/gdl-dock-item.c:330 +#: ../src/libgdl/gdl-dock-master.c:153 msgid "Locked" msgstr "Verrouillé" -#: ../src/libgdl/gdl-dock-item.c:320 +#: ../src/libgdl/gdl-dock-item.c:331 msgid "If set, the dock item cannot be dragged around and it doesn't show a grip" msgstr "Si coché, l’élément détachable ne peut pas être déplacé et il n’affiche pas de poignée" -#: ../src/libgdl/gdl-dock-item.c:328 +#: ../src/libgdl/gdl-dock-item.c:339 msgid "Preferred width" msgstr "Largeur préférée" -#: ../src/libgdl/gdl-dock-item.c:329 +#: ../src/libgdl/gdl-dock-item.c:340 msgid "Preferred width for the dock item" msgstr "Largeur préférée pour l’élément détachable" -#: ../src/libgdl/gdl-dock-item.c:335 +#: ../src/libgdl/gdl-dock-item.c:346 msgid "Preferred height" msgstr "Hauteur préférée" -#: ../src/libgdl/gdl-dock-item.c:336 +#: ../src/libgdl/gdl-dock-item.c:347 msgid "Preferred height for the dock item" msgstr "Hauteur préférée pour l’élément détachable" -#: ../src/libgdl/gdl-dock-item.c:615 +#: ../src/libgdl/gdl-dock-item.c:664 #, c-format msgid "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or some other compound dock object." msgstr "Vous ne pouvez pas ajouter d’objet d’attache (%p de type %s) dans un %s. Utilisez un GdlDock ou un autre objet d’attache composite." -#: ../src/libgdl/gdl-dock-item.c:622 +#: ../src/libgdl/gdl-dock-item.c:671 #, c-format msgid "Attempting to add a widget with type %s to a %s, but it can only contain one widget at a time; it already contains a widget of type %s" msgstr "Tentative d’ajout d’un gadget de %s à un %s, mais il ne peut contenir qu’un gadget à la fois ; il contient déjà un gadget detype %s" -#: ../src/libgdl/gdl-dock-item.c:1346 -#: ../src/libgdl/gdl-dock-item.c:1391 +#: ../src/libgdl/gdl-dock-item.c:1392 +#: ../src/libgdl/gdl-dock-item.c:1442 #, c-format msgid "Unsupported docking strategy %s in dock object of type %s" msgstr "La stratégie d’attache %s n’est pas supportée pour l’objet d’attache de type %s" #. UnLock menuitem -#: ../src/libgdl/gdl-dock-item.c:1481 +#: ../src/libgdl/gdl-dock-item.c:1553 msgid "UnLock" msgstr "Déverrouiller" #. Hide menuitem. -#: ../src/libgdl/gdl-dock-item.c:1488 +#: ../src/libgdl/gdl-dock-item.c:1560 msgid "Hide" msgstr "Cacher" #. Lock menuitem -#: ../src/libgdl/gdl-dock-item.c:1493 +#: ../src/libgdl/gdl-dock-item.c:1565 msgid "Lock" msgstr "Verrouiller" -#: ../src/libgdl/gdl-dock-item.c:1728 +#: ../src/libgdl/gdl-dock-item.c:1829 #, c-format msgid "Attempt to bind an unbound item %p" msgstr "Tentative de lier un élément délié %p" -#: ../src/libgdl/gdl-dock-master.c:144 +#: ../src/libgdl/gdl-dock-master.c:146 #: ../src/libgdl/gdl-dock.c:183 msgid "Default title" msgstr "Titre par défaut" -#: ../src/libgdl/gdl-dock-master.c:145 +#: ../src/libgdl/gdl-dock-master.c:147 msgid "Default title for newly created floating docks" msgstr "Titre par défaut pour les nouveaux points d’attache flottants" -#: ../src/libgdl/gdl-dock-master.c:152 +#: ../src/libgdl/gdl-dock-master.c:154 msgid "If is set to 1, all the dock items bound to the master are locked; if it's 0, all are unlocked; -1 indicates inconsistency among the items" msgstr "Si la valeur est 1, tous les éléments détachables liés au maître sont verrouillés ; si la valeur est 0, tous sont déverrouillés, -1 indique des états hétérogènes pour les éléments" -#: ../src/libgdl/gdl-dock-master.c:160 -#: ../src/libgdl/gdl-switcher.c:702 +#: ../src/libgdl/gdl-dock-master.c:162 +#: ../src/libgdl/gdl-switcher.c:692 msgid "Switcher Style" msgstr "Style de commutation" -#: ../src/libgdl/gdl-dock-master.c:161 -#: ../src/libgdl/gdl-switcher.c:703 +#: ../src/libgdl/gdl-dock-master.c:163 +#: ../src/libgdl/gdl-switcher.c:693 msgid "Switcher buttons style" msgstr "Style des boutons de commutation" -#: ../src/libgdl/gdl-dock-master.c:168 +#: ../src/libgdl/gdl-dock-master.c:170 msgid "Expand direction" msgstr "Direction d’expansion" -#: ../src/libgdl/gdl-dock-master.c:169 +#: ../src/libgdl/gdl-dock-master.c:171 msgid "Allow the master's dock items to expand their container dock objects in the given direction" msgstr "Permet aux éléments détachables du maître d’élargir les objets d’attache qu’ils contiennent dans la direction donnée" -#: ../src/libgdl/gdl-dock-master.c:805 +#: ../src/libgdl/gdl-dock-master.c:807 #, c-format msgid "master %p: unable to add object %p[%s] to the hash. There already is an item with that name (%p)." msgstr "maître %p: impossible d’ajouter l’objet %p[%s] dans la table. Il y a déjà un élément avec ce nom (%p)." -#: ../src/libgdl/gdl-dock-master.c:978 +#: ../src/libgdl/gdl-dock-master.c:979 #, c-format msgid "The new dock controller %p is automatic. Only manual dock objects should be named controller." msgstr "Le nouveau contrôleur d’attache %p est automatique. Seuls les ojbets d’attache manuels peuvent être nommés contrôleurs." #: ../src/libgdl/gdl-dock-notebook.c:134 #: ../src/ui/dialog/align-and-distribute.cpp:1034 -#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/document-properties.cpp:116 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429 #: ../src/widgets/desktop-widget.cpp:1725 #: ../share/extensions/voronoi2svg.inx.h:8 @@ -9081,22 +9135,22 @@ msgstr "Maître d’attache" msgid "Dock master this dock object is bound to" msgstr "Maître d’attache auquel cet objet d’attache est lié" -#: ../src/libgdl/gdl-dock-object.c:438 +#: ../src/libgdl/gdl-dock-object.c:462 #, c-format msgid "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which hasn't implemented this method" msgstr "Appel à gdl_dock_object_dock dans un objet d’attache %p (le type d’objet est %s) qui n’a pas implémenté cette méthode" -#: ../src/libgdl/gdl-dock-object.c:568 +#: ../src/libgdl/gdl-dock-object.c:595 #, c-format msgid "Dock operation requested in a non-bound object %p. The application might crash" msgstr "Opération d’attache demandée sur un ojbet %p non-lié. L’application pourrait planter" -#: ../src/libgdl/gdl-dock-object.c:575 +#: ../src/libgdl/gdl-dock-object.c:602 #, c-format msgid "Cannot dock %p to %p because they belong to different masters" msgstr "Impossible d’attacher %p à %p car ils appartiennent à des maîtres différents" -#: ../src/libgdl/gdl-dock-object.c:617 +#: ../src/libgdl/gdl-dock-object.c:644 #, c-format msgid "Attempt to bind to %p an already bound dock object %p (current master: %p)" msgstr "Tentative d’attacher à %p un objet d’attache %p déjà lié par ailleurs (maître actuel: %p)" @@ -9109,88 +9163,90 @@ msgstr "Position" msgid "Position of the divider in pixels" msgstr "Position du diviseur en pixels" -#: ../src/libgdl/gdl-dock-placeholder.c:143 +#: ../src/libgdl/gdl-dock-placeholder.c:144 msgid "Sticky" msgstr "Collé" -#: ../src/libgdl/gdl-dock-placeholder.c:144 +#: ../src/libgdl/gdl-dock-placeholder.c:145 msgid "Whether the placeholder will stick to its host or move up the hierarchy when the host is redocked" msgstr "Détermine si l’élément substituable restera attaché à son hôte ou remontera dans la hiérarchie quand l’hôte est réattaché" -#: ../src/libgdl/gdl-dock-placeholder.c:151 +#: ../src/libgdl/gdl-dock-placeholder.c:152 msgid "Host" msgstr "Hôte" -#: ../src/libgdl/gdl-dock-placeholder.c:152 +#: ../src/libgdl/gdl-dock-placeholder.c:153 msgid "The dock object this placeholder is attached to" msgstr "L’objet d’attachement auquel cet élément substituable est attaché" -#: ../src/libgdl/gdl-dock-placeholder.c:159 +#: ../src/libgdl/gdl-dock-placeholder.c:160 msgid "Next placement" msgstr "Placement suivant" -#: ../src/libgdl/gdl-dock-placeholder.c:160 +#: ../src/libgdl/gdl-dock-placeholder.c:161 msgid "The position an item will be docked to our host if a request is made to dock to us" msgstr "La position où un élément sera attaché à l’hôte si une demande d’attachement est faite" -#: ../src/libgdl/gdl-dock-placeholder.c:169 +#: ../src/libgdl/gdl-dock-placeholder.c:170 #: ../src/libgdl/gdl-dock.c:190 -#: ../src/widgets/toolbox.cpp:3359 -#: ../src/widgets/toolbox.cpp:4377 -#: ../src/widgets/toolbox.cpp:4691 +#: ../src/widgets/toolbox.cpp:3377 +#: ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 #: ../share/extensions/interp_att_g.inx.h:28 msgid "Width" msgstr "Largeur" -#: ../src/libgdl/gdl-dock-placeholder.c:170 +#: ../src/libgdl/gdl-dock-placeholder.c:171 msgid "Width for the widget when it's attached to the placeholder" msgstr "Largeur du gadget quand il est attaché à l’élément substituable" -#: ../src/libgdl/gdl-dock-placeholder.c:177 +#: ../src/libgdl/gdl-dock-placeholder.c:178 #: ../src/libgdl/gdl-dock.c:198 -#: ../src/widgets/toolbox.cpp:3376 +#: ../src/widgets/toolbox.cpp:3394 #: ../share/extensions/interp_att_g.inx.h:7 msgid "Height" msgstr "Hauteur" -#: ../src/libgdl/gdl-dock-placeholder.c:178 +#: ../src/libgdl/gdl-dock-placeholder.c:179 msgid "Height for the widget when it's attached to the placeholder" msgstr "Hauteur du gadget quand il est attaché à l’élément substituable" -#: ../src/libgdl/gdl-dock-placeholder.c:184 +#: ../src/libgdl/gdl-dock-placeholder.c:185 msgid "Floating Toplevel" msgstr "Niveau supérieur flottant" -#: ../src/libgdl/gdl-dock-placeholder.c:185 +#: ../src/libgdl/gdl-dock-placeholder.c:186 msgid "Whether the placeholder is standing in for a floating toplevel dock" msgstr "Détermine si l’élément substituable réserve la place pour un point d’attache flottant de niveau supérieur" -#: ../src/libgdl/gdl-dock-placeholder.c:191 +#: ../src/libgdl/gdl-dock-placeholder.c:192 msgid "X-Coordinate" msgstr "Coordonnée X" -#: ../src/libgdl/gdl-dock-placeholder.c:192 -msgid "X coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:193 +#, fuzzy +msgid "X-Coordinate for dock when floating" msgstr "Coordonnée X du point d’attache quand il est flottant" -#: ../src/libgdl/gdl-dock-placeholder.c:198 +#: ../src/libgdl/gdl-dock-placeholder.c:199 msgid "Y-Coordinate" msgstr "Coordonnée Y" -#: ../src/libgdl/gdl-dock-placeholder.c:199 -msgid "Y coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:200 +#, fuzzy +msgid "Y-Coordinate for dock when floating" msgstr "Coordonnée Y du point d’attache quand il est flottant" -#: ../src/libgdl/gdl-dock-placeholder.c:497 +#: ../src/libgdl/gdl-dock-placeholder.c:498 msgid "Attempt to dock a dock object to an unbound placeholder" msgstr "Tentative d’attachement d’un objet d’attache sur un élément substituable non lié" -#: ../src/libgdl/gdl-dock-placeholder.c:625 +#: ../src/libgdl/gdl-dock-placeholder.c:626 #, c-format msgid "Got a detach signal from an object (%p) who is not our host %p" msgstr "Signal de détachement reçu d’un objet (%p) qui n’est pas notre hôte %p" -#: ../src/libgdl/gdl-dock-placeholder.c:650 +#: ../src/libgdl/gdl-dock-placeholder.c:651 #, c-format msgid "Something weird happened while getting the child placement for %p from parent %p" msgstr "Quelque chose de bizarre est arrivé en essayant d’obtenir le placement du fils %p auprès du parent %p" @@ -9200,8 +9256,8 @@ msgid "Dockitem which 'owns' this tablabel" msgstr "Élément d’attache qui « possède » ce tablabel" #: ../src/libgdl/gdl-dock.c:175 -#: ../src/ui/dialog/inkscape-preferences.cpp:590 -#: ../src/ui/dialog/inkscape-preferences.cpp:611 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 +#: ../src/ui/dialog/inkscape-preferences.cpp:612 msgid "Floating" msgstr "Flottant" @@ -9237,7 +9293,7 @@ msgstr "Y flottant" msgid "Y coordinate for a floating dock" msgstr "Coordonnée Y pour un point d’attache flottant" -#: ../src/libgdl/gdl-dock.c:501 +#: ../src/libgdl/gdl-dock.c:486 #, c-format msgid "Dock #%d" msgstr "Point d’attache #%d" @@ -9923,12 +9979,12 @@ msgid "Both" msgstr "Les deux" #: ../src/live_effects/lpe-ruler.cpp:35 -#: ../src/widgets/toolbox.cpp:5645 +#: ../src/widgets/toolbox.cpp:5663 msgid "Start" msgstr "Début" #: ../src/live_effects/lpe-ruler.cpp:36 -#: ../src/widgets/toolbox.cpp:5658 +#: ../src/widgets/toolbox.cpp:5676 msgid "End" msgstr "Fin" @@ -10981,7 +11037,7 @@ msgid "Unique URI to a related document" msgstr "URI unique vers un document apparenté" #: ../src/rdf.cpp:263 -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Language:" msgstr "Langue principale :" @@ -11126,7 +11182,7 @@ msgstr "Rien n’a été supprimé." #: ../src/ui/dialog/swatches.cpp:204 #: ../src/ui/dialog/swatches.cpp:267 #: ../src/widgets/toolbox.cpp:1385 -#: ../src/widgets/toolbox.cpp:6213 +#: ../src/widgets/toolbox.cpp:6231 msgid "Delete" msgstr "Supprimer" @@ -11484,9 +11540,9 @@ msgstr "Cercle" #. Ellipse #: ../src/selection-describer.cpp:48 #: ../src/selection-describer.cpp:73 -#: ../src/ui/dialog/inkscape-preferences.cpp:509 +#: ../src/ui/dialog/inkscape-preferences.cpp:510 #: ../src/verbs.cpp:2514 -#: ../src/widgets/toolbox.cpp:4156 +#: ../src/widgets/toolbox.cpp:4174 msgid "Ellipse" msgstr "Ellipse" @@ -11503,7 +11559,7 @@ msgid "Path" msgstr "Chemin" #: ../src/selection-describer.cpp:60 -#: ../src/widgets/toolbox.cpp:2997 +#: ../src/widgets/toolbox.cpp:3015 msgid "Polygon" msgstr "Polygone" @@ -11513,14 +11569,14 @@ msgstr "Polyligne" #. Rectangle #: ../src/selection-describer.cpp:64 -#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/ui/dialog/inkscape-preferences.cpp:500 #: ../src/verbs.cpp:2510 msgid "Rectangle" msgstr "Rectangle" #. 3D box #: ../src/selection-describer.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:504 +#: ../src/ui/dialog/inkscape-preferences.cpp:505 #: ../src/verbs.cpp:2512 msgid "3D Box" msgstr "Boîte 3D" @@ -11531,7 +11587,7 @@ msgstr "Boîte 3D" #. this->AddNewObjectsStyle(_page_lpetool, "/tools/lpetool"); #. Text #: ../src/selection-describer.cpp:68 -#: ../src/ui/dialog/inkscape-preferences.cpp:558 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 #: ../src/verbs.cpp:2526 #: ../share/extensions/lorem_ipsum.inx.h:7 #: ../share/extensions/replace_font.inx.h:10 @@ -11554,21 +11610,23 @@ msgid "Clone" msgstr "Clone" #: ../src/selection-describer.cpp:75 +#: ../share/extensions/gcodetools_lathe.inx.h:31 msgid "Offset path" msgstr "Chemin offset" #. Spiral #: ../src/selection-describer.cpp:77 -#: ../src/ui/dialog/inkscape-preferences.cpp:517 +#: ../src/ui/dialog/inkscape-preferences.cpp:518 #: ../src/verbs.cpp:2518 +#: ../share/extensions/gcodetools_area.inx.h:45 msgid "Spiral" msgstr "Spirale" #. Star #: ../src/selection-describer.cpp:79 -#: ../src/ui/dialog/inkscape-preferences.cpp:513 +#: ../src/ui/dialog/inkscape-preferences.cpp:514 #: ../src/verbs.cpp:2516 -#: ../src/widgets/toolbox.cpp:3004 +#: ../src/widgets/toolbox.cpp:3022 msgid "Star" msgstr "Étoile" @@ -11810,16 +11868,16 @@ msgstr "horizontal, à %s" msgid "at %d degrees, through (%s,%s)" msgstr "à %d degrés, passe par (%s,%s)" -#: ../src/sp-image.cpp:1132 +#: ../src/sp-image.cpp:1133 msgid "embedded" msgstr "embarquée" -#: ../src/sp-image.cpp:1140 +#: ../src/sp-image.cpp:1141 #, c-format msgid "Image with bad reference: %s" msgstr "Image avec une mauvaise référence : %s" -#: ../src/sp-image.cpp:1141 +#: ../src/sp-image.cpp:1142 #, c-format msgid "Image %d × %d: %s" msgstr "Image %d × %d : %s" @@ -12142,12 +12200,12 @@ msgid "Nothing selected! Select objects to spray." msgstr "Sélection vide ! Sélectionner les objets à pulvériser." #: ../src/spray-context.cpp:781 -#: ../src/widgets/toolbox.cpp:4741 +#: ../src/widgets/toolbox.cpp:4759 msgid "Spray with copies" msgstr "Pulvérise avec des copies" #: ../src/spray-context.cpp:785 -#: ../src/widgets/toolbox.cpp:4748 +#: ../src/widgets/toolbox.cpp:4766 msgid "Spray with clones" msgstr "Pulvérise avec des clones" @@ -12850,12 +12908,12 @@ msgstr "_V :" #: ../src/ui/dialog/align-and-distribute.cpp:512 #: ../src/ui/dialog/align-and-distribute.cpp:894 -#: ../src/widgets/toolbox.cpp:8377 +#: ../src/widgets/toolbox.cpp:8395 msgid "Remove overlaps" msgstr "Supprimer les chevauchements" #: ../src/ui/dialog/align-and-distribute.cpp:543 -#: ../src/widgets/toolbox.cpp:8170 +#: ../src/widgets/toolbox.cpp:8188 msgid "Arrange connector network" msgstr "Arranger le réseau de connecteurs" @@ -12884,7 +12942,7 @@ msgid "Rearrange" msgstr "Organiser" #: ../src/ui/dialog/align-and-distribute.cpp:895 -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2332 msgid "Nodes" msgstr "Nœuds" @@ -12985,7 +13043,7 @@ msgid "Distribute baselines of texts vertically" msgstr "Distribuer des distances égales verticalement entre lignes de base des textes" #: ../src/ui/dialog/align-and-distribute.cpp:986 -#: ../src/widgets/toolbox.cpp:8339 +#: ../src/widgets/toolbox.cpp:8357 msgid "Nicely arrange selected connector network" msgstr "Dispose le réseau de connecteurs sélectionnés de façon agréable" @@ -13070,7 +13128,7 @@ msgstr "Nom du profil :" #. #. ----------- #: ../src/ui/dialog/calligraphic-profile-rename.cpp:52 -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +#: ../src/ui/dialog/inkscape-preferences.cpp:1243 msgid "Save" msgstr "Enregistrement" @@ -13083,27 +13141,27 @@ msgstr "Couleur : %s ; Clic pour définir le remplissage, Maj msgid "Change color definition" msgstr "Modifier la définition de la couleur" -#: ../src/ui/dialog/color-item.cpp:699 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove stroke color" msgstr "Supprimer la couleur du contour" -#: ../src/ui/dialog/color-item.cpp:699 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove fill color" msgstr "Supprimer la couleur de remplissage" -#: ../src/ui/dialog/color-item.cpp:704 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set stroke color to none" msgstr "Appliquer une couleur de contour nulle" -#: ../src/ui/dialog/color-item.cpp:704 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set fill color to none" msgstr "Appliquer une couleur de remplissage nulle" -#: ../src/ui/dialog/color-item.cpp:720 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set stroke color from swatch" msgstr "Appliquer une couleur de contour à partir de l’échantillon" -#: ../src/ui/dialog/color-item.cpp:720 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set fill color from swatch" msgstr "Appliquer une couleur de remplissage à partir de l’échantillon" @@ -13138,337 +13196,333 @@ msgid "License" msgstr "Licence" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "Show page _border" msgstr "Afficher la _bordure de page" -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "If set, rectangular page border is shown" msgstr "Si coché, la bordure rectangulaire de la page est affichée" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "Border on _top of drawing" msgstr "Bordure au-_dessus du dessin" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "If set, border is always on top of the drawing" msgstr "Si coché, la bordure est toujours au-dessus du dessin" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "_Show border shadow" msgstr "_Afficher une ombre de bordure" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "If set, page border shows a shadow on its right and lower side" msgstr "Si coché, la bordure de page est ombrée en bas et à droite" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Back_ground:" msgstr "Couleur de _fond :" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Background color" msgstr "Couleur de fond" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Color and transparency of the page background (also used for bitmap export)" msgstr "Couleur et opacité du fond de page (également utilisé lors de l’exportation en bitmap)" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Border _color:" msgstr "_Couleur de la bordure :" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Page border color" msgstr "Couleur de bordure de page" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Color of the page border" msgstr "Couleur de bordure de page" -#: ../src/ui/dialog/document-properties.cpp:98 +#: ../src/ui/dialog/document-properties.cpp:96 msgid "Default _units:" msgstr "_Unités par défaut :" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show _guides" msgstr "Afficher les _guides" -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show or hide guides" msgstr "Afficher ou non les guides" -#: ../src/ui/dialog/document-properties.cpp:103 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "_Snap guides while dragging" msgstr "Aimanter les guides en déplaçant" -#: ../src/ui/dialog/document-properties.cpp:103 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "While dragging a guide, snap to object nodes or bounding box corners ('Snap to nodes' or 'snap to bounding box corners' must be enabled; only a small part of the guide near the cursor will snap)" msgstr "Quand un guide est déplacé, l’aimanter aux nœuds des objets ou aux boîtes englobantes ('Aimanter aux nœuds d’objets' ou 'Aimanter aux coins des boîtes englobantes' doit être activé ; seule une petite partie du guide proche du curseur sera aimantée)" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guide co_lor:" msgstr "Cou_leur des guides :" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guideline color" msgstr "Couleur des lignes de guide" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Color of guidelines" msgstr "Couleur des lignes de guide" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "_Highlight color:" msgstr "Couleur d’emp_hase :" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Highlighted guideline color" msgstr "Couleur d’emphase des lignes de guide" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Color of a guideline when it is under mouse" msgstr "Couleur d’une ligne de guide quand elle est sous le curseur de la souris" -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:107 msgctxt "Grid" msgid "_New" msgstr "_Nouvelle" -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:107 msgid "Create new grid." msgstr "Créer une nouvelle grille" -#: ../src/ui/dialog/document-properties.cpp:110 +#: ../src/ui/dialog/document-properties.cpp:108 msgctxt "Grid" msgid "_Remove" msgstr "Supp_rimer" -#: ../src/ui/dialog/document-properties.cpp:110 +#: ../src/ui/dialog/document-properties.cpp:108 msgid "Remove selected grid." msgstr "Supprimer la grille sélectionnée." -#: ../src/ui/dialog/document-properties.cpp:119 -#: ../src/widgets/toolbox.cpp:2424 +#: ../src/ui/dialog/document-properties.cpp:117 +#: ../src/widgets/toolbox.cpp:2439 msgid "Guides" msgstr "Guides" -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:119 #: ../src/verbs.cpp:2597 msgid "Snap" msgstr "Magnétisme" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Color Management" msgstr "Gestion de la couleur" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "Scripting" msgstr "Programmation" -#: ../src/ui/dialog/document-properties.cpp:221 +#: ../src/ui/dialog/document-properties.cpp:219 msgid "General" msgstr "Général" -#: ../src/ui/dialog/document-properties.cpp:223 +#: ../src/ui/dialog/document-properties.cpp:221 msgid "Border" msgstr "Bordure" -#: ../src/ui/dialog/document-properties.cpp:225 +#: ../src/ui/dialog/document-properties.cpp:223 msgid "Page Size" msgstr "Taille de la page" -#: ../src/ui/dialog/document-properties.cpp:253 +#: ../src/ui/dialog/document-properties.cpp:251 msgid "Guides" msgstr "Guides" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap _distance" msgstr "Distance d’attraction" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap only when _closer than:" msgstr "Aimanter seulement à moins d’une distance de :" -#: ../src/ui/dialog/document-properties.cpp:272 -#: ../src/ui/dialog/document-properties.cpp:278 -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:270 +#: ../src/ui/dialog/document-properties.cpp:276 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Always snap" msgstr "Toujours aimanter" -#: ../src/ui/dialog/document-properties.cpp:273 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Snapping distance, in screen pixels, for snapping to objects" msgstr "Distance d’attraction, en pixels d’écran, pour aimanter aux objets" -#: ../src/ui/dialog/document-properties.cpp:273 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Always snap to objects, regardless of their distance" msgstr "Toujours adhérer aux objets les plus proche, sans tenir compte de la distance" -#: ../src/ui/dialog/document-properties.cpp:274 +#: ../src/ui/dialog/document-properties.cpp:272 msgid "If set, objects only snap to another object when it's within the range specified below" msgstr "Si la valeur est définie, les objets ne sont aimantés entre eux que s’ils sont à une distance inférieure à cette valeur" #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap d_istance" msgstr "D_istance d’attraction" -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap only when c_loser than:" msgstr "Aimanter seulement à moins d’une distance de :" -#: ../src/ui/dialog/document-properties.cpp:279 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Snapping distance, in screen pixels, for snapping to grid" msgstr "Distance d’attraction, en pixels d’écran, pour aimanter à la grille" -#: ../src/ui/dialog/document-properties.cpp:279 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Always snap to grids, regardless of the distance" msgstr "Toujours adhérer aux grilles les plus proches, sans tenir compte de la distance" -#: ../src/ui/dialog/document-properties.cpp:280 +#: ../src/ui/dialog/document-properties.cpp:278 msgid "If set, objects only snap to a grid line when it's within the range specified below" msgstr "Si la valeur est définie, les objets ne sont aimantés à une ligne de la grille que s’ils sont à une distance inférieure à cette valeur" #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap dist_ance" msgstr "Distance d’attraction" -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap only when close_r than:" msgstr "Aimante_r seulement à moins d’une distance de :" -#: ../src/ui/dialog/document-properties.cpp:285 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Snapping distance, in screen pixels, for snapping to guides" msgstr "Distance d’attraction, en pixels d’écran, pour aimanter aux guides" -#: ../src/ui/dialog/document-properties.cpp:285 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Always snap to guides, regardless of the distance" msgstr "Toujours adhérer aux guides les plus proches, sans tenir compte de la distance" -#: ../src/ui/dialog/document-properties.cpp:286 +#: ../src/ui/dialog/document-properties.cpp:284 msgid "If set, objects only snap to a guide when it's within the range specified below" msgstr "Si la valeur est définie, les objets ne sont aimantés à un guide que s’ils sont à une distance inférieure à cette valeur" -#: ../src/ui/dialog/document-properties.cpp:290 +#: ../src/ui/dialog/document-properties.cpp:288 msgid "Snap to objects" msgstr "Aimanter aux objets" -#: ../src/ui/dialog/document-properties.cpp:292 +#: ../src/ui/dialog/document-properties.cpp:290 msgid "Snap to grids" msgstr "Aimanter à la grille" -#: ../src/ui/dialog/document-properties.cpp:294 +#: ../src/ui/dialog/document-properties.cpp:292 msgid "Snap to guides" msgstr "Aimanter aux guides" -#: ../src/ui/dialog/document-properties.cpp:323 -msgid "(invalid UTF-8 string)" -msgstr "(chaîne UTF-8 invalide)" - #. TODO check if this next line was sometimes needed. It being there caused an assertion. #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:432 +#: ../src/ui/dialog/document-properties.cpp:406 #: ../src/verbs.cpp:2763 msgid "Link Color Profile" msgstr "Lier un profil de couleurs" -#: ../src/ui/dialog/document-properties.cpp:525 +#: ../src/ui/dialog/document-properties.cpp:499 msgid "Remove linked color profile" msgstr "Supprimer le profil de couleur lié" -#: ../src/ui/dialog/document-properties.cpp:539 +#: ../src/ui/dialog/document-properties.cpp:513 msgid "Linked Color Profiles:" msgstr "Profils de couleur liés :" -#: ../src/ui/dialog/document-properties.cpp:541 +#: ../src/ui/dialog/document-properties.cpp:515 msgid "Available Color Profiles:" msgstr "Profils de couleur disponibles :" -#: ../src/ui/dialog/document-properties.cpp:543 +#: ../src/ui/dialog/document-properties.cpp:517 msgid "Link Profile" msgstr "Lier au profil" -#: ../src/ui/dialog/document-properties.cpp:574 +#: ../src/ui/dialog/document-properties.cpp:548 msgid "Profile Name" msgstr "Nom du profil" -#: ../src/ui/dialog/document-properties.cpp:607 +#: ../src/ui/dialog/document-properties.cpp:581 msgid "External scripts" msgstr "Programmes externes" -#: ../src/ui/dialog/document-properties.cpp:608 +#: ../src/ui/dialog/document-properties.cpp:582 msgid "Embedded scripts" msgstr "Programmes incorporés" -#: ../src/ui/dialog/document-properties.cpp:614 +#: ../src/ui/dialog/document-properties.cpp:588 msgid "External script files:" msgstr "Fichier de programmation externe :" -#: ../src/ui/dialog/document-properties.cpp:616 +#: ../src/ui/dialog/document-properties.cpp:590 msgid "Add" msgstr "Ajouter" -#: ../src/ui/dialog/document-properties.cpp:639 +#: ../src/ui/dialog/document-properties.cpp:613 msgid "Filename" msgstr "Nom du fichier" -#: ../src/ui/dialog/document-properties.cpp:648 +#: ../src/ui/dialog/document-properties.cpp:622 msgid "Embedded script files:" msgstr "Fichier de programmation incorporés :" -#: ../src/ui/dialog/document-properties.cpp:650 +#: ../src/ui/dialog/document-properties.cpp:624 #, fuzzy msgid "New" msgstr "Nouvelle" -#: ../src/ui/dialog/document-properties.cpp:672 +#: ../src/ui/dialog/document-properties.cpp:646 msgid "Script id" msgstr "Identifiant du script" -#: ../src/ui/dialog/document-properties.cpp:678 +#: ../src/ui/dialog/document-properties.cpp:652 msgid "Content:" msgstr "Contenu :" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:741 +#: ../src/ui/dialog/document-properties.cpp:715 msgid "Add external script..." msgstr "Ajouter un programme externe..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:758 +#: ../src/ui/dialog/document-properties.cpp:732 msgid "Add embedded script..." msgstr "Ajouter un programme incorporé..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:788 +#: ../src/ui/dialog/document-properties.cpp:762 msgid "Remove external script" msgstr "Supprimer un programme externe" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:820 +#: ../src/ui/dialog/document-properties.cpp:794 msgid "Remove embedded script" msgstr "Retirer le programme incorporé" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:903 +#: ../src/ui/dialog/document-properties.cpp:877 msgid "Edit embedded script" msgstr "Retirer le programme incorporé" -#: ../src/ui/dialog/document-properties.cpp:988 +#: ../src/ui/dialog/document-properties.cpp:962 msgid "Creation" msgstr " Création " -#: ../src/ui/dialog/document-properties.cpp:989 +#: ../src/ui/dialog/document-properties.cpp:963 msgid "Defined grids" msgstr "Grilles définies" -#: ../src/ui/dialog/document-properties.cpp:1200 +#: ../src/ui/dialog/document-properties.cpp:1174 msgid "Remove grid" msgstr "Supprimer la grille" @@ -13483,14 +13537,16 @@ msgstr "Information" #: ../share/extensions/draw_from_triangle.inx.h:20 #: ../share/extensions/dxf_input.inx.h:11 #: ../share/extensions/dxf_outlines.inx.h:8 -#: ../share/extensions/gcodetools_all_in_one.inx.h:25 -#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:28 #: ../share/extensions/gcodetools_check_for_updates.inx.h:5 -#: ../share/extensions/gcodetools_dxf_points.inx.h:13 -#: ../share/extensions/gcodetools_engraving.inx.h:11 -#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:20 #: ../share/extensions/gcodetools_orientation_points.inx.h:5 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 #: ../share/extensions/gcodetools_tools_library.inx.h:3 #: ../share/extensions/generate_voronoi.inx.h:6 #: ../share/extensions/gimp_xcf.inx.h:3 @@ -13869,10 +13925,10 @@ msgid "Height of filter effects region" msgstr "Hauteur de la zone d’action du filtre" #: ../src/ui/dialog/filter-effects-dialog.cpp:2190 -#: ../src/widgets/toolbox.cpp:4125 -#: ../src/widgets/toolbox.cpp:4503 -#: ../src/widgets/toolbox.cpp:4761 -#: ../src/widgets/toolbox.cpp:6226 +#: ../src/widgets/toolbox.cpp:4143 +#: ../src/widgets/toolbox.cpp:4521 +#: ../src/widgets/toolbox.cpp:4779 +#: ../src/widgets/toolbox.cpp:6244 #: ../share/extensions/extrude.inx.h:4 #: ../share/extensions/triangle.inx.h:9 msgid "Mode:" @@ -14976,8 +15032,8 @@ msgid "_X:" msgstr "_X :" #: ../src/ui/dialog/guides.cpp:44 -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:462 msgid "_Y:" msgstr "_J :" @@ -15030,1106 +15086,1106 @@ msgstr "Séle_ction" msgid "Selection only or whole document" msgstr "Seulement la sélection ou tout le document" -#: ../src/ui/dialog/inkscape-preferences.cpp:177 +#: ../src/ui/dialog/inkscape-preferences.cpp:178 msgid "Mouse" msgstr "Souris" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 msgid "Grab sensitivity:" msgstr "Sensibilité de capture :" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 -#: ../src/ui/dialog/inkscape-preferences.cpp:182 -#: ../src/ui/dialog/inkscape-preferences.cpp:198 -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 msgid "pixels" msgstr "pixels" -#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:181 msgid "How close on the screen you need to be to an object to be able to grab it with mouse (in screen pixels)" msgstr "Distance à partir de laquelle on peut saisir un objet à l’écran avec la souris (en pixels d’écran)" -#: ../src/ui/dialog/inkscape-preferences.cpp:182 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 msgid "Click/drag threshold:" msgstr "Seuil de cliquer-déplacer :" -#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:184 msgid "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "Déplacement maximal de la souris (en pixels d’écran) considéré comme un clic et non comme un déplacement" -#: ../src/ui/dialog/inkscape-preferences.cpp:185 +#: ../src/ui/dialog/inkscape-preferences.cpp:186 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "Utiliser une tablette graphique sensible à la pression (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:187 +#: ../src/ui/dialog/inkscape-preferences.cpp:188 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 mouse)" msgstr "Utiliser les possibilités offertes par une tablette graphique ou un autre périphérique sensible à la pression. Désactivez ceci uniquement si vous rencontrez des problèmes avec la tablette (vous pourrez néanmoins continuer à l’utiliser comme souris)" -#: ../src/ui/dialog/inkscape-preferences.cpp:189 +#: ../src/ui/dialog/inkscape-preferences.cpp:190 msgid "Switch tool based on tablet device (requires restart)" msgstr "Change d’outil en fonction des dispositifs de tablette (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:192 msgid "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "Change d’outil lorsque des dispositifs différents sont utilisés sur la tablette (crayon, gomme, souris)" -#: ../src/ui/dialog/inkscape-preferences.cpp:196 +#: ../src/ui/dialog/inkscape-preferences.cpp:197 msgid "Scrolling" msgstr "Défilement" -#: ../src/ui/dialog/inkscape-preferences.cpp:198 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 msgid "Mouse wheel scrolls by:" msgstr "La molette de la souris défile de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:200 msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)" msgstr "Un cran de la molette de la souris fait défiler de tant de pixels (horizontalement avec Maj)" -#: ../src/ui/dialog/inkscape-preferences.cpp:200 +#: ../src/ui/dialog/inkscape-preferences.cpp:201 msgid "Ctrl+arrows" msgstr "Ctrl+flèches" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 msgid "Scroll by:" msgstr "Défiler de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:204 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "Appuyer sur Ctrl+flèches fait défiler de cette distance (en pixels d’écran)" -#: ../src/ui/dialog/inkscape-preferences.cpp:205 +#: ../src/ui/dialog/inkscape-preferences.cpp:206 msgid "Acceleration:" msgstr "Accélération :" -#: ../src/ui/dialog/inkscape-preferences.cpp:206 +#: ../src/ui/dialog/inkscape-preferences.cpp:207 msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)" msgstr "Garder appuyé Ctrl+flèches accélère graduellement la vitesse du défilement (0 pour aucune accélération)" -#: ../src/ui/dialog/inkscape-preferences.cpp:207 +#: ../src/ui/dialog/inkscape-preferences.cpp:208 msgid "Autoscrolling" msgstr "Défilement automatique" -#: ../src/ui/dialog/inkscape-preferences.cpp:209 +#: ../src/ui/dialog/inkscape-preferences.cpp:210 msgid "Speed:" msgstr "Vitesse :" -#: ../src/ui/dialog/inkscape-preferences.cpp:210 +#: ../src/ui/dialog/inkscape-preferences.cpp:211 msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)" msgstr "Vitesse du défilement automatique de la zone de travail lors que l’on tire un objet au dehors de la zone (0 pour aucun défilement automatique)" -#: ../src/ui/dialog/inkscape-preferences.cpp:213 +#: ../src/ui/dialog/inkscape-preferences.cpp:214 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" msgstr "Distance (en pixels d’écran) à laquelle il faut être du bord de la zone de travail pour activer le défilement automatique; les valeurs positives sont en dehors de la zone, les négatives à l’intérieur" -#: ../src/ui/dialog/inkscape-preferences.cpp:214 +#: ../src/ui/dialog/inkscape-preferences.cpp:215 msgid "Left mouse button pans when Space is pressed" msgstr "Le bouton gauche de la souris fait défiler horizontalement quand la touche Espace est pressée" -#: ../src/ui/dialog/inkscape-preferences.cpp:216 +#: ../src/ui/dialog/inkscape-preferences.cpp:217 msgid "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)" msgstr "Si coché, maintenir pressée la touche Espace tout en cliquant-déplaçant avec le bouton gauche de la souris fait défiler horizontalement la zone de travail (comme dans Adobe Illustrator) ; si décoché, la touche Espace active temporairement l’outil de Sélection (réglage par défaut)." -#: ../src/ui/dialog/inkscape-preferences.cpp:217 +#: ../src/ui/dialog/inkscape-preferences.cpp:218 msgid "Mouse wheel zooms by default" msgstr "La molette de la souris zoome par défaut" -#: ../src/ui/dialog/inkscape-preferences.cpp:219 +#: ../src/ui/dialog/inkscape-preferences.cpp:220 msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl" msgstr "Si coché, la molette de la souris zoome sans la touche Ctrl et fait défiler la zone de travail avec Ctrl ; si décoché, elle zoome avec Ctrl et fait défiler sans Ctrl." -#: ../src/ui/dialog/inkscape-preferences.cpp:225 +#: ../src/ui/dialog/inkscape-preferences.cpp:226 msgid "Enable snap indicator" msgstr "Activer le témoin de magnétisme" -#: ../src/ui/dialog/inkscape-preferences.cpp:227 +#: ../src/ui/dialog/inkscape-preferences.cpp:228 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "Un symbole est dessiné sur le point d’accrochage après l’opération" -#: ../src/ui/dialog/inkscape-preferences.cpp:230 +#: ../src/ui/dialog/inkscape-preferences.cpp:231 msgid "Delay (in ms):" msgstr "Délai (en millisecondes) :" -#: ../src/ui/dialog/inkscape-preferences.cpp:231 +#: ../src/ui/dialog/inkscape-preferences.cpp:232 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 "Diffère le magnétisme aussi longtemps que la souris est en mouvement, puis attend encore une fraction de seconde supplémentaire. Ce délai additionnel est défini ici. Si la valeur est nulle ou très faible, l’aimantation est immédiate." -#: ../src/ui/dialog/inkscape-preferences.cpp:233 +#: ../src/ui/dialog/inkscape-preferences.cpp:234 msgid "Only snap the node closest to the pointer" msgstr "Aimanter seulement le nœud le plus proche du pointeur" -#: ../src/ui/dialog/inkscape-preferences.cpp:235 +#: ../src/ui/dialog/inkscape-preferences.cpp:236 msgid "Only try to snap the node that is initially closest to the mouse pointer" msgstr "Essayer d’aimanter le nœud initialement le plus proche du pointeur" -#: ../src/ui/dialog/inkscape-preferences.cpp:238 +#: ../src/ui/dialog/inkscape-preferences.cpp:239 msgid "Weight factor:" msgstr "Coefficient de pondération :" -#: ../src/ui/dialog/inkscape-preferences.cpp:239 +#: ../src/ui/dialog/inkscape-preferences.cpp:240 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 initially the closest to the pointer (when set to 1)" msgstr "Lorsque plusieurs aimantations sont possibles, Inkscape choisit soit la transformation la plus proche (si positionné à 0), soit le nœud qui était initialement le plus proche du pointeur (si positionné à 1)" -#: ../src/ui/dialog/inkscape-preferences.cpp:241 +#: ../src/ui/dialog/inkscape-preferences.cpp:242 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "Aimanter le pointeur de souris lors du déplacement d’un nœud contraint" -#: ../src/ui/dialog/inkscape-preferences.cpp:243 +#: ../src/ui/dialog/inkscape-preferences.cpp:244 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 constraint line" msgstr "Lorsqu’un nœud est déplacé le long d’une ligne de contrainte, alors aimanter la position du pointeur de souris plutôt que la projection du nœud sur la ligne de contrainte" -#: ../src/ui/dialog/inkscape-preferences.cpp:245 +#: ../src/ui/dialog/inkscape-preferences.cpp:246 msgid "Snapping" msgstr "Magnétisme" -#: ../src/ui/dialog/inkscape-preferences.cpp:250 +#: ../src/ui/dialog/inkscape-preferences.cpp:251 msgid "Steps" msgstr "Incréments" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:254 +#: ../src/ui/dialog/inkscape-preferences.cpp:255 msgid "Arrow keys move by:" msgstr "Les flèches déplacent de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:255 +#: ../src/ui/dialog/inkscape-preferences.cpp:256 msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "Appuyer sur une flèche déplace les objet(s) ou les nœud(s) sélectionnés de cette distance" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:258 +#: ../src/ui/dialog/inkscape-preferences.cpp:259 msgid "> and < scale by:" msgstr "> et < redimensionnent de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:259 +#: ../src/ui/dialog/inkscape-preferences.cpp:260 msgid "Pressing > or < scales selection up or down by this increment" msgstr "Appuyer sur > ou < redimensionne de cet incrément" -#: ../src/ui/dialog/inkscape-preferences.cpp:261 +#: ../src/ui/dialog/inkscape-preferences.cpp:262 msgid "Inset/Outset by:" msgstr "Contracter/dilater de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:262 +#: ../src/ui/dialog/inkscape-preferences.cpp:263 msgid "Inset and Outset commands displace the path by this distance" msgstr "Les commandes contracter et dilater déplacent le chemin de cette distance" -#: ../src/ui/dialog/inkscape-preferences.cpp:263 +#: ../src/ui/dialog/inkscape-preferences.cpp:264 msgid "Compass-like display of angles" msgstr "Afficher les angles comme sur une boussole" -#: ../src/ui/dialog/inkscape-preferences.cpp:265 +#: ../src/ui/dialog/inkscape-preferences.cpp:266 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 counterclockwise" msgstr "Si coché, les angles sont affichés en sens horaire de 0 (au nord) à 360; si décoché, ils sont affichés de -180 à 180 en sens anti-horaire (0 étant à l’est)" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "Rotation snaps every:" msgstr "Incrément de rotation :" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "degrees" msgstr "degrés" -#: ../src/ui/dialog/inkscape-preferences.cpp:272 +#: ../src/ui/dialog/inkscape-preferences.cpp:273 msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount" msgstr "Ctrl appuyé forcera des rotations de tant de degrés; de même en appuyant sur [ ou ], les rotations se feront selon cet incrément" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "Relative snapping of guideline angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:275 +#: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "When on, the snap angles when rotating a guideline will be relative to the original angle" msgstr "Si coché, l'angle de magnétisme lors de la rotation d'un guide est relatif à l'angle d'origine" -#: ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Zoom in/out by:" msgstr "(Dé)Zoomer de :" -#: ../src/ui/dialog/inkscape-preferences.cpp:278 +#: ../src/ui/dialog/inkscape-preferences.cpp:279 msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier" msgstr "Les outils de zoom (clic en mode zoom, touches +/-, clic bouton du milieu) zooment ou dézooment selon ce facteur" -#: ../src/ui/dialog/inkscape-preferences.cpp:284 +#: ../src/ui/dialog/inkscape-preferences.cpp:285 msgid "Show selection cue" msgstr "Afficher les poignées de sélection" -#: ../src/ui/dialog/inkscape-preferences.cpp:285 +#: ../src/ui/dialog/inkscape-preferences.cpp:286 msgid "Whether selected objects display a selection cue (the same as in selector)" msgstr "Si coché, l’objet sélectionné affiche ses poignées de sélection (les mêmes que dans le sélecteur)" -#: ../src/ui/dialog/inkscape-preferences.cpp:291 +#: ../src/ui/dialog/inkscape-preferences.cpp:292 msgid "Enable gradient editing" msgstr "Activer l’édition de dégradé" -#: ../src/ui/dialog/inkscape-preferences.cpp:292 +#: ../src/ui/dialog/inkscape-preferences.cpp:293 msgid "Whether selected objects display gradient editing controls" msgstr "Si coché, les objets sélectionnés affichent leurs poignées d’édition de dégradés" -#: ../src/ui/dialog/inkscape-preferences.cpp:297 +#: ../src/ui/dialog/inkscape-preferences.cpp:298 msgid "Conversion to guides uses edges instead of bounding box" msgstr "Utiliser les bords (plutôt que les boîtes englobantes) pour convertir en guides" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 +#: ../src/ui/dialog/inkscape-preferences.cpp:299 msgid "Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box" msgstr "La conversion d’un objet en guides place ceux-ci le long des bords réels de l’objet (imitant la forme de l’objet), et non le long de sa boîte englobante" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "Ctrl+click dot size:" msgstr "Taille des points du Ctrl-clic :" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "times current stroke width" msgstr "fois l’épaisseur courante de contour" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 +#: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "Taille des points créés avec Ctrl+clic (par rapport à l’épaisseur courante de contour)" -#: ../src/ui/dialog/inkscape-preferences.cpp:321 +#: ../src/ui/dialog/inkscape-preferences.cpp:322 msgid "No objects selected to take the style from." msgstr "Aucun objet sélectionné pour en capturer le style." -#: ../src/ui/dialog/inkscape-preferences.cpp:330 +#: ../src/ui/dialog/inkscape-preferences.cpp:331 msgid "More than one object selected. Cannot take style from multiple objects." msgstr "Plus d’un objet est sélectionné. Impossible de capturer le style de plusieurs objets." -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Style of new objects" msgstr "Style des nouveaux objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Last used style" msgstr "Dernier style utilisé" -#: ../src/ui/dialog/inkscape-preferences.cpp:367 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Apply the style you last set on an object" msgstr "Appliquer le dernier style attribué à un objet" -#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "This tool's own style:" msgstr "Style propre à l’outil :" -#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "Each tool may store its own style to apply to the newly created objects. Use the button below to set it." msgstr "Chaque outil retient son propre style à appliquer aux nouveaux objets créés. Utiliser le bouton ci-dessous pour le définir." #. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:380 +#: ../src/ui/dialog/inkscape-preferences.cpp:381 msgid "Take from selection" msgstr "Capturer depuis la sélection" -#: ../src/ui/dialog/inkscape-preferences.cpp:385 +#: ../src/ui/dialog/inkscape-preferences.cpp:386 msgid "This tool's style of new objects" msgstr "Style de cet outil pour les nouveaux objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:392 +#: ../src/ui/dialog/inkscape-preferences.cpp:393 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "Mémoriser le style du premier objet sélectionné comme style de cet outil" -#: ../src/ui/dialog/inkscape-preferences.cpp:397 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 msgid "Tools" msgstr "Outils" -#: ../src/ui/dialog/inkscape-preferences.cpp:400 +#: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Bounding box to use" msgstr "Boîte englobante à utiliser" -#: ../src/ui/dialog/inkscape-preferences.cpp:401 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Visual bounding box" msgstr "Boîte englobante visuelle" -#: ../src/ui/dialog/inkscape-preferences.cpp:403 +#: ../src/ui/dialog/inkscape-preferences.cpp:404 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "Cette boîte englobante comprend l’épaisseur du contour, les marqueurs, les marges des filtres, etc." -#: ../src/ui/dialog/inkscape-preferences.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Geometric bounding box" msgstr "Boîte englobante géométrique" -#: ../src/ui/dialog/inkscape-preferences.cpp:406 +#: ../src/ui/dialog/inkscape-preferences.cpp:407 msgid "This bounding box includes only the bare path" msgstr "Cette boîte englobante ne comprend que le chemin lui-même" -#: ../src/ui/dialog/inkscape-preferences.cpp:408 +#: ../src/ui/dialog/inkscape-preferences.cpp:409 msgid "Conversion to guides" msgstr "Convertion en guides" -#: ../src/ui/dialog/inkscape-preferences.cpp:409 +#: ../src/ui/dialog/inkscape-preferences.cpp:410 msgid "Keep objects after conversion to guides" msgstr "Conserver les objets après leur conversion en guides" -#: ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../src/ui/dialog/inkscape-preferences.cpp:412 msgid "When converting an object to guides, don't delete the object after the conversion" msgstr "Lors de la conversion d’objets en guides, ne pas supprimer les objets après la conversion" -#: ../src/ui/dialog/inkscape-preferences.cpp:412 +#: ../src/ui/dialog/inkscape-preferences.cpp:413 msgid "Treat groups as a single object" msgstr "Manipule le groupe comme un objet unique" -#: ../src/ui/dialog/inkscape-preferences.cpp:414 +#: ../src/ui/dialog/inkscape-preferences.cpp:415 msgid "Treat groups as a single object during conversion to guides rather than converting each child separately" msgstr "Lors de la conversion en guides, les groupes sont traités chacun comme un objet unique (la conversion n’est pas appliquée à chaque enfant séparément)" -#: ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/ui/dialog/inkscape-preferences.cpp:417 msgid "Average all sketches" msgstr "Moyenner tous les croquis" -#: ../src/ui/dialog/inkscape-preferences.cpp:417 +#: ../src/ui/dialog/inkscape-preferences.cpp:418 msgid "Width is in absolute units" msgstr "Largeur en unités absolues" -#: ../src/ui/dialog/inkscape-preferences.cpp:418 +#: ../src/ui/dialog/inkscape-preferences.cpp:419 msgid "Select new path" msgstr "Sélectionner le nouveau chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:419 +#: ../src/ui/dialog/inkscape-preferences.cpp:420 msgid "Don't attach connectors to text objects" msgstr "Ne pas lier les connecteurs aux objets texte" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:423 msgid "Selector" msgstr "Sélecteur" -#: ../src/ui/dialog/inkscape-preferences.cpp:425 +#: ../src/ui/dialog/inkscape-preferences.cpp:426 msgid "When transforming, show" msgstr "Lors des transformations, afficher" -#: ../src/ui/dialog/inkscape-preferences.cpp:426 +#: ../src/ui/dialog/inkscape-preferences.cpp:427 msgid "Objects" msgstr "Objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:428 +#: ../src/ui/dialog/inkscape-preferences.cpp:429 msgid "Show the actual objects when moving or transforming" msgstr "Afficher les objets lors des déplacements ou des transformations" -#: ../src/ui/dialog/inkscape-preferences.cpp:429 +#: ../src/ui/dialog/inkscape-preferences.cpp:430 msgid "Box outline" msgstr "Silhouette rectangulaire" -#: ../src/ui/dialog/inkscape-preferences.cpp:431 +#: ../src/ui/dialog/inkscape-preferences.cpp:432 msgid "Show only a box outline of the objects when moving or transforming" msgstr "N’afficher que la silhouette rectangulaire des objets lors de leurs déplacements ou transformations" -#: ../src/ui/dialog/inkscape-preferences.cpp:432 +#: ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Per-object selection cue" msgstr "Indication de sélection d’objet" -#: ../src/ui/dialog/inkscape-preferences.cpp:435 +#: ../src/ui/dialog/inkscape-preferences.cpp:436 msgid "No per-object selection indication" msgstr "Aucune indication de sélection d’objet" -#: ../src/ui/dialog/inkscape-preferences.cpp:436 +#: ../src/ui/dialog/inkscape-preferences.cpp:437 msgid "Mark" msgstr "Marque" -#: ../src/ui/dialog/inkscape-preferences.cpp:438 +#: ../src/ui/dialog/inkscape-preferences.cpp:439 msgid "Each selected object has a diamond mark in the top left corner" msgstr "Chaque objet sélectionné est marqué d’un losange dans le coin en haut à gauche" -#: ../src/ui/dialog/inkscape-preferences.cpp:439 +#: ../src/ui/dialog/inkscape-preferences.cpp:440 msgid "Box" msgstr "Boîte" -#: ../src/ui/dialog/inkscape-preferences.cpp:441 +#: ../src/ui/dialog/inkscape-preferences.cpp:442 msgid "Each selected object displays its bounding box" msgstr "Chaque objet sélectionné affiche sa boîte englobante" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:444 +#: ../src/ui/dialog/inkscape-preferences.cpp:445 msgid "Node" msgstr "Nœud" -#: ../src/ui/dialog/inkscape-preferences.cpp:447 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 msgid "Path outline" msgstr "Contour de chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:448 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "Path outline color" msgstr "Couleur du contour de chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:449 +#: ../src/ui/dialog/inkscape-preferences.cpp:450 msgid "Selects the color used for showing the path outline" msgstr "Sélectionner la couleur utilisée pour le contour du chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:450 +#: ../src/ui/dialog/inkscape-preferences.cpp:451 msgid "Always show outline" msgstr "Toujours afficher le contour" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 +#: ../src/ui/dialog/inkscape-preferences.cpp:452 msgid "Show outlines for all paths, not only invisible paths" msgstr "Affiche les contours pour tous les chemins, pas seulement les chemins invisibles" -#: ../src/ui/dialog/inkscape-preferences.cpp:452 +#: ../src/ui/dialog/inkscape-preferences.cpp:453 msgid "Update outline when dragging nodes" msgstr "Mettre à jour le contour pendant le déplacement des nœuds" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:454 msgid "Update the outline when dragging or transforming nodes; if this is off, the outline will only update when completing a drag" msgstr "Met à jour le contour pendant le déplacement ou la transformation des nœuds ; lorsque cette option est désactivée, le contour n’est mis à jour qu’à la fin du déplacement" -#: ../src/ui/dialog/inkscape-preferences.cpp:454 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "Update paths when dragging nodes" msgstr "Mettre à jour les chemins pendant le déplacement des nœuds" -#: ../src/ui/dialog/inkscape-preferences.cpp:455 +#: ../src/ui/dialog/inkscape-preferences.cpp:456 msgid "Update paths when dragging or transforming nodes; if this is off, paths will only be updated when completing a drag" msgstr "Met à jour les chemins pendant le déplacement ou la transformation des nœuds ; lorsque cette option est désactivée, les chemins ne sont mis à jour qu’à la fin du déplacement" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:457 msgid "Show path direction on outlines" msgstr "Afficher la direction des chemins sur le contour" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 msgid "Visualize the direction of selected paths by drawing small arrows in the middle of each outline segment" msgstr "Visualise la direction des chemins sélectionnés en dessinant de petites flèches au milieu de chaque segment de contour" -#: ../src/ui/dialog/inkscape-preferences.cpp:458 +#: ../src/ui/dialog/inkscape-preferences.cpp:459 msgid "Show temporary path outline" msgstr "Afficher temporairement le contour de chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:459 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 msgid "When hovering over a path, briefly flash its outline" msgstr "Faire clignoter brièvement le contour d’un chemin lors de son survol" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:461 msgid "Show temporary outline for selected paths" msgstr "Afficher temporairement le contour des chemins sélectionnés" -#: ../src/ui/dialog/inkscape-preferences.cpp:461 +#: ../src/ui/dialog/inkscape-preferences.cpp:462 msgid "Show temporary outline even when a path is selected for editing" msgstr "Affiche temporairement le contour même lorsqu’un chemin est sélectionné pour édition" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "Flash time:" msgstr "Durée de clignotement :" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 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 path" msgstr "Définit combien de temps le contour sera visible après son survol par la souris (en millisecondes) ; choisissez 0 pour garder le contour visible jusqu’à ce que la souris quitte le chemin." -#: ../src/ui/dialog/inkscape-preferences.cpp:464 +#: ../src/ui/dialog/inkscape-preferences.cpp:465 msgid "Editing preferences" msgstr "Préférences d’édition" -#: ../src/ui/dialog/inkscape-preferences.cpp:465 +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Show transform handles for single nodes" msgstr "Afficher les poignées de transformation pour un nœud seul" -#: ../src/ui/dialog/inkscape-preferences.cpp:466 +#: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "Show transform handles even when only a single node is selected" msgstr "Affiche les poignées de transformation même lorsqu’un seul nœud est sélectionné" -#: ../src/ui/dialog/inkscape-preferences.cpp:467 +#: ../src/ui/dialog/inkscape-preferences.cpp:468 msgid "Deleting nodes preserves shape" msgstr "La suppression des nœuds préserve la forme" -#: ../src/ui/dialog/inkscape-preferences.cpp:468 +#: ../src/ui/dialog/inkscape-preferences.cpp:469 msgid "Move handles next to deleted nodes to resemble original shape; hold Ctrl to get the other behavior" msgstr "Déplace les poignées près des nœuds supprimés pour conserver la forme originale ; maintenir Ctrl pour désactiver cette fonctionnalité" #. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:471 +#: ../src/ui/dialog/inkscape-preferences.cpp:472 #: ../src/verbs.cpp:2506 msgid "Tweak" msgstr "Ajuster" -#: ../src/ui/dialog/inkscape-preferences.cpp:472 +#: ../src/ui/dialog/inkscape-preferences.cpp:473 #, fuzzy msgid "Object paint style" msgstr "Centre d’objet" #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:477 +#: ../src/ui/dialog/inkscape-preferences.cpp:478 #: ../src/verbs.cpp:2508 msgid "Spray" msgstr "Aérographe" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:482 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 #: ../src/verbs.cpp:2530 #: ../src/widgets/desktop-widget.cpp:493 msgid "Zoom" msgstr "Zoom" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:487 +#: ../src/ui/dialog/inkscape-preferences.cpp:488 #: ../src/verbs.cpp:2532 #: ../share/extensions/measure.inx.h:6 msgid "Measure" msgstr "Mesurer" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 +#: ../src/ui/dialog/inkscape-preferences.cpp:490 msgid "Ignore first and last points" msgstr "Ignorer le premier et le dernier point" -#: ../src/ui/dialog/inkscape-preferences.cpp:490 +#: ../src/ui/dialog/inkscape-preferences.cpp:491 msgid "The start and end of the measurement tool's control line will not be considered for calculating lengths. Only lengths between actual curve intersections will be displayed." msgstr "Le début et la fin de la ligne de contrôle de l'outil de mesure ne sont pas pris en compte dans le calcul des longueurs. Seules les longueurs entre les intersections des chemins sont affichées." #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:493 +#: ../src/ui/dialog/inkscape-preferences.cpp:494 msgid "Shapes" msgstr "Formes" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:526 msgid "Sketch mode" msgstr "Mode croquis" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:528 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" msgstr "Si coché, le résultat du croquis sera moyenné avec tous les autres croquis ; sinon, la moyenne sera effectuée entre l’ancien résultat et le nouveau croquis" #. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:531 #: ../src/ui/dialog/input.cpp:1184 #: ../src/verbs.cpp:2522 msgid "Pen" msgstr "Stylo" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:537 #: ../src/verbs.cpp:2524 msgid "Calligraphy" msgstr "Plume calligraphique" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 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" msgstr "Si coché, la largeur de la plume est en unités absolues (px) indépendemment du zoom; sinon, la largeur de plume dépend du zoom afin de paraître la même quel que soit le zoom" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "If on, each newly created object will be selected (deselecting previous selection)" msgstr "Activer pour que les nouveaux objets soient automatiquement sélectionnés (à la place de l’ancienne sélection)" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 #: ../src/verbs.cpp:2538 msgid "Paint Bucket" msgstr "Remplissage au seau" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 #: ../src/verbs.cpp:2542 msgid "Eraser" msgstr "Gomme" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 +#: ../src/ui/dialog/inkscape-preferences.cpp:564 msgid "Show font samples in the drop-down list" msgstr "Afficher les échantillons de police dans la liste déroulante" -#: ../src/ui/dialog/inkscape-preferences.cpp:564 +#: ../src/ui/dialog/inkscape-preferences.cpp:565 msgid "Show font samples alongside font names in the drop-down list in Text bar" msgstr "Affiche les échantillons de police à côté du nom dans la liste déroulante de la barre de texte" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:569 +#: ../src/ui/dialog/inkscape-preferences.cpp:570 #: ../src/verbs.cpp:2528 msgid "Gradient" msgstr "Dégradé" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:573 +#: ../src/ui/dialog/inkscape-preferences.cpp:574 #: ../src/verbs.cpp:2536 msgid "Connector" msgstr "Connecteur" -#: ../src/ui/dialog/inkscape-preferences.cpp:576 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "If on, connector attachment points will not be shown for text objects" msgstr "Si coché, les points d’accroche de connecteur ne sont pas montrés pour des objets texte" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:578 +#: ../src/ui/dialog/inkscape-preferences.cpp:579 #: ../src/verbs.cpp:2534 msgid "Dropper" msgstr "Pipette" -#: ../src/ui/dialog/inkscape-preferences.cpp:585 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Save and restore window geometry for each document" msgstr "Sauver et restaurer la géométrie de la fenêtre pour chaque document" -#: ../src/ui/dialog/inkscape-preferences.cpp:586 +#: ../src/ui/dialog/inkscape-preferences.cpp:587 msgid "Remember and use last window's geometry" msgstr "Mémoriser et utiliser la géométrie de la dernière fenêtre" -#: ../src/ui/dialog/inkscape-preferences.cpp:587 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Don't save window geometry" msgstr "Ne pas enregistrer la géométrie de la fenêtre" -#: ../src/ui/dialog/inkscape-preferences.cpp:589 -#: ../src/ui/dialog/inkscape-preferences.cpp:609 +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +#: ../src/ui/dialog/inkscape-preferences.cpp:610 msgid "Dockable" msgstr "Attachable" -#: ../src/ui/dialog/inkscape-preferences.cpp:592 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Dialogs are hidden in taskbar" msgstr "Les dialogues sont cachés dans la barre des tâches" -#: ../src/ui/dialog/inkscape-preferences.cpp:593 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Zoom when window is resized" msgstr "Zoomer quand la fenêtre est redimensionnée" -#: ../src/ui/dialog/inkscape-preferences.cpp:594 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Show close button on dialogs" msgstr "Afficher un bouton de fermeture sur les dialogues" -#: ../src/ui/dialog/inkscape-preferences.cpp:597 +#: ../src/ui/dialog/inkscape-preferences.cpp:598 msgid "Aggressive" msgstr "Agressif" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:600 msgid "Saving window geometry (size and position)" msgstr "Enregistrer la géométrie de la fenêtre (taille et position)" -#: ../src/ui/dialog/inkscape-preferences.cpp:601 +#: ../src/ui/dialog/inkscape-preferences.cpp:602 msgid "Let the window manager determine placement of all windows" msgstr "Laisser le gestionnaire de fenêtre placer toutes les fenêtres" -#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#: ../src/ui/dialog/inkscape-preferences.cpp:604 msgid "Remember and use the last window's geometry (saves geometry to user preferences)" msgstr "Mémoriser et utiliser la géométrie de la dernière fenêtre (enregistre la géométrie dans les préférences utilisateur)" -#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:606 msgid "Save and restore window geometry for each document (saves geometry in the document)" msgstr "Sauver et restaurer la géométrie de la fenêtre pour chaque document (enregistre la géométrie avec le document)" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 +#: ../src/ui/dialog/inkscape-preferences.cpp:608 msgid "Dialog behavior (requires restart)" msgstr "Comportement des boîtes de dialogue (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:614 +#: ../src/ui/dialog/inkscape-preferences.cpp:615 msgid "Dialogs on top:" msgstr "Dialogues au-dessus de la fenêtre :" -#: ../src/ui/dialog/inkscape-preferences.cpp:617 +#: ../src/ui/dialog/inkscape-preferences.cpp:618 msgid "Dialogs are treated as regular windows" msgstr "Les dialogues sont traités comme des fenêtres normales" -#: ../src/ui/dialog/inkscape-preferences.cpp:619 +#: ../src/ui/dialog/inkscape-preferences.cpp:620 msgid "Dialogs stay on top of document windows" msgstr "Les dialogues restent au-dessus des fenêtres de document" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Same as Normal but may work better with some window managers" msgstr "Comme Normal, mais fonctionne peut-être mieux avec certains gestionnaires de fenêtres" -#: ../src/ui/dialog/inkscape-preferences.cpp:625 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "Dialog Transparency" msgstr "Transparence des boîtes de dialogue" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 +#: ../src/ui/dialog/inkscape-preferences.cpp:628 msgid "Opacity when focused:" msgstr "Opacité lorsque la fenêtre est active :" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "Opacity when unfocused:" msgstr "Opacité lorsque la fenêtre est inactive :" -#: ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:632 msgid "Time of opacity change animation:" msgstr "Temps de transition :" -#: ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "Miscellaneous" msgstr "Divers" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:638 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "Si coché, les boîtes de dialogue sont cachées dans la barre des tâches du gestionnaire de fenêtre" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 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 above the right scrollbar)" msgstr "Si coché, le dessin est rezoomé quand la fenêtre est redimensionnée, pour garder visible la même aire (c’est l’option par défaut qui peut être changée dans toute fenêtre en utilisant le boutton au dessus de la barre de défilement de droite)" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Whether dialog windows have a close button (requires restart)" msgstr "Si coché, les boîtes de dialogue ont un bouton de fermeture (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:643 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 msgid "Windows" msgstr "Fenêtres" -#: ../src/ui/dialog/inkscape-preferences.cpp:648 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 msgid "Move in parallel" msgstr "Sont déplacés en parallèle" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 +#: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Stay unmoved" msgstr "Ne bougent pas" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgid "Move according to transform" msgstr "Sont déplacés en fonction leurs transformations" -#: ../src/ui/dialog/inkscape-preferences.cpp:654 +#: ../src/ui/dialog/inkscape-preferences.cpp:655 msgid "Are unlinked" msgstr "Sont déliés" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 +#: ../src/ui/dialog/inkscape-preferences.cpp:657 msgid "Are deleted" msgstr "Sont supprimés" -#: ../src/ui/dialog/inkscape-preferences.cpp:659 +#: ../src/ui/dialog/inkscape-preferences.cpp:660 msgid "Moving original: clones and linked offsets" msgstr "Lorsque l’original est déplacé, ses clones et ses offsets liés" -#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:662 msgid "Clones are translated by the same vector as their original" msgstr "Les clones sont déplacés du même vecteur que leur original" -#: ../src/ui/dialog/inkscape-preferences.cpp:663 +#: ../src/ui/dialog/inkscape-preferences.cpp:664 msgid "Clones preserve their positions when their original is moved" msgstr "Les clones restent sur place quand leur original est déplacé" -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 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" msgstr "Chaque clone est déplacé en fonction de son attribut transform= ; par exemple, un clone qui a déjà été tourné sera déplacé dans une direction différente de celle de son original" -#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 #, fuzzy msgid "Deleting original: clones" msgstr "Lors de la duplication d’un original et de ses clones" -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Orphaned clones are converted to regular objects" msgstr "Les clones orphelins sont convertis en objets normaux" -#: ../src/ui/dialog/inkscape-preferences.cpp:670 +#: ../src/ui/dialog/inkscape-preferences.cpp:671 msgid "Orphaned clones are deleted along with their original" msgstr "Les clones orphelins sont supprimés en même temps que leur original" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 +#: ../src/ui/dialog/inkscape-preferences.cpp:673 msgid "Duplicating original+clones/linked offset" msgstr "Lors de la duplication d’un original et de ses clones ou de ses offsets liés" -#: ../src/ui/dialog/inkscape-preferences.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "Relink duplicated clones" msgstr "Relier les clones dupliqués" -#: ../src/ui/dialog/inkscape-preferences.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:677 msgid "When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original" msgstr "Lorsque la sélection dupliquée contient un clone et son original (dans un groupe par exemple), relier le clone dupliqué à l’objet original dupliqué plutôt qu’à l’original initial" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Clones" msgstr "Clones" -#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:685 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "Utiliser l’objet le plus haut comme chemin de découpe ou masque lors de l’application" -#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:687 msgid "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "Si décoché, l’objet le plus en-dessous de la sélection est utilisé comme chemin de découpe ou masque" -#: ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:688 msgid "Remove clippath/mask object after applying" msgstr "Supprimer le chemin de découpe ou le masque après application" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "After applying, remove the object used as the clipping path or mask from the drawing" msgstr "Si coché, le chemin de découpe ou masque est supprimé du dessin après avoir été appliqué" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:692 msgid "Before applying" msgstr "Avant d’appliquer une découpe ou un masque" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Do not group clipped/masked objects" msgstr "Ne pas grouper les objets découpés ou masqués" -#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Enclose every clipped/masked object in its own group" msgstr "Insérer chaque objet découpé ou masqué dans son propre groupe" -#: ../src/ui/dialog/inkscape-preferences.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Put all clipped/masked objects into one group" msgstr "Mettre tous les objets découpés ou masqués dans un même groupe" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Apply clippath/mask to every object" msgstr "Applique la découpe ou le masque à tous les objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgid "Apply clippath/mask to groups containing single object" msgstr "Applique la découpe ou le masque à des groupes contenant un objet seul" -#: ../src/ui/dialog/inkscape-preferences.cpp:704 +#: ../src/ui/dialog/inkscape-preferences.cpp:705 msgid "Apply clippath/mask to group containing all objects" msgstr "Applique la découpe ou le masque à un groupe contenant tous les objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "After releasing" msgstr "Après retrait de la découpe ou du masque" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 +#: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "Ungroup automatically created groups" msgstr "Dégrouper les groupes créés automatiquement" -#: ../src/ui/dialog/inkscape-preferences.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "Ungroup groups created when setting clip/mask" msgstr "Dégrouper les groupes créés lors de la mise en place de la découpe ou du masque" -#: ../src/ui/dialog/inkscape-preferences.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:713 msgid "Clippaths and masks" msgstr "Chemins de découpe et masques" -#: ../src/ui/dialog/inkscape-preferences.cpp:717 -#: ../src/widgets/select-toolbar.cpp:554 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/widgets/select-toolbar.cpp:561 msgid "Scale stroke width" msgstr "Redimensionner l’épaisseur du contour" -#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/ui/dialog/inkscape-preferences.cpp:719 msgid "Scale rounded corners in rectangles" msgstr "Redimensionner les coins arrondis des rectangles" -#: ../src/ui/dialog/inkscape-preferences.cpp:719 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Transform gradients" msgstr "Transformer les dégradés" -#: ../src/ui/dialog/inkscape-preferences.cpp:720 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 msgid "Transform patterns" msgstr "Transformer les motifs de remplissage" -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "Optimized" msgstr "Optimisé" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/ui/dialog/inkscape-preferences.cpp:723 msgid "Preserved" msgstr "Préservé" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 -#: ../src/widgets/select-toolbar.cpp:555 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 +#: ../src/widgets/select-toolbar.cpp:562 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "Lors d’un redimensionnement des objets, préserver la proportion des épaisseurs des contours" -#: ../src/ui/dialog/inkscape-preferences.cpp:727 -#: ../src/widgets/select-toolbar.cpp:566 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 +#: ../src/widgets/select-toolbar.cpp:573 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "Lors du redimensionnements d’un rectangle, préserver la proportion des rayons des coins arrondis" -#: ../src/ui/dialog/inkscape-preferences.cpp:729 -#: ../src/widgets/select-toolbar.cpp:577 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/widgets/select-toolbar.cpp:584 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "Transformer les dégradés avec les objets (remplissage et contour)" -#: ../src/ui/dialog/inkscape-preferences.cpp:731 -#: ../src/widgets/select-toolbar.cpp:588 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/widgets/select-toolbar.cpp:595 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "Transformer les motifs de remplissage avec les objets (remplissage et contour)" -#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/ui/dialog/inkscape-preferences.cpp:733 msgid "Store transformation" msgstr "Enregistrement des transformations" -#: ../src/ui/dialog/inkscape-preferences.cpp:734 +#: ../src/ui/dialog/inkscape-preferences.cpp:735 msgid "If possible, apply transformation to objects without adding a transform= attribute" msgstr "Si possible, appliquer des transformations aux objets sans ajouter l’attribut transform=" -#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:737 msgid "Always store transformation as a transform= attribute on objects" msgstr "Toujours enregistrer les transformations dans l’attribut transform= des objets" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgid "Transforms" msgstr "Transformations" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Best quality (slowest)" msgstr "Haute qualité (le plus lent)" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "Better quality (slower)" msgstr "Bonne qualité (plus lent)" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Average quality" msgstr "Qualité moyenne" -#: ../src/ui/dialog/inkscape-preferences.cpp:750 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 +#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Lower quality (faster)" msgstr "Basse qualité (plus rapide)" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Lowest quality (fastest)" msgstr "Qualité médiocre (le plus rapide)" -#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "Gaussian blur quality for display" msgstr "Qualité d’affichage du flou gaussien" -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:782 msgid "Best quality, but display may be very slow at high zooms (bitmap export always uses best quality)" msgstr "La plus haute qualité, mais l’affichage peut être très lent pour des zooms importants (l’export en bitmap utilise toujours la plus haute qualité)" -#: ../src/ui/dialog/inkscape-preferences.cpp:759 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +#: ../src/ui/dialog/inkscape-preferences.cpp:784 msgid "Better quality, but slower display" msgstr "Meilleure qualité, mais affichage plus lent" -#: ../src/ui/dialog/inkscape-preferences.cpp:761 -#: ../src/ui/dialog/inkscape-preferences.cpp:785 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 msgid "Average quality, acceptable display speed" msgstr "Qualité moyenne, vitesse d’affichage acceptable" -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:788 msgid "Lower quality (some artifacts), but display is faster" msgstr "Qualité plus faible (présence d’artefacts), mais affichage plus rapide" -#: ../src/ui/dialog/inkscape-preferences.cpp:765 -#: ../src/ui/dialog/inkscape-preferences.cpp:789 +#: ../src/ui/dialog/inkscape-preferences.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:790 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "La plus mauvaise qualité (nombreux artefacts), mais l’affichage est bien plus rapide" -#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Filter effects quality for display" msgstr "Qualité d’affichage des effets de filtre" #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:793 msgid "Show filter primitives infobox" msgstr "Affiche la boîte d’information des primitives de filtre" -#: ../src/ui/dialog/inkscape-preferences.cpp:794 +#: ../src/ui/dialog/inkscape-preferences.cpp:795 msgid "Show icons and descriptions for the filter primitives available at the filter effects dialog" msgstr "Afficher les icônes et les descriptions pour les primitives de filtre disponibles dans la boîte de dialogue des effets de filtre" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 msgid "Number of Threads:" msgstr "Nombre de threads :" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "(requires restart)" msgstr "(nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:800 msgid "Configure number of processors/threads to use with rendering of gaussian blur" msgstr "Configure le nombre de processeurs/threads à utiliser pour le rendu du flou gaussien" -#: ../src/ui/dialog/inkscape-preferences.cpp:807 +#: ../src/ui/dialog/inkscape-preferences.cpp:808 msgid "Select in all layers" msgstr "Sélectionner dans tous les calques" -#: ../src/ui/dialog/inkscape-preferences.cpp:808 +#: ../src/ui/dialog/inkscape-preferences.cpp:809 msgid "Select only within current layer" msgstr "Sélectionner seulement dans le calque courant" -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:810 msgid "Select in current layer and sublayers" msgstr "Sélectionner dans le calque courant et ses sous-calques" -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Ignore hidden objects and layers" msgstr "Ignorer les objets et calques cachés" -#: ../src/ui/dialog/inkscape-preferences.cpp:811 +#: ../src/ui/dialog/inkscape-preferences.cpp:812 msgid "Ignore locked objects and layers" msgstr "Ignorer les objets et calques verrouillés" -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:813 msgid "Deselect upon layer change" msgstr "Désélectionner en changeant de calque" -#: ../src/ui/dialog/inkscape-preferences.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:815 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "Ctrl+A, Tab, Maj+Tab" -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Make keyboard selection commands work on objects in all layers" msgstr "Les commandes de sélection au clavier s’appliquent aux objets dans tous les calques" -#: ../src/ui/dialog/inkscape-preferences.cpp:818 +#: ../src/ui/dialog/inkscape-preferences.cpp:819 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "Les commandes de sélection au clavier s’appliquent seulement dans le calque courant" -#: ../src/ui/dialog/inkscape-preferences.cpp:820 +#: ../src/ui/dialog/inkscape-preferences.cpp:821 msgid "Make keyboard selection commands work on objects in current layer and all its sublayers" msgstr "Les commandes de sélection au clavier s’appliquent seulement dans le calque courant et dans ses sous-calques" -#: ../src/ui/dialog/inkscape-preferences.cpp:822 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Uncheck this to be able to select objects that are hidden (either by themselves or by being in a hidden layer)" msgstr "Si décoché, la sélection des objets cachés est possible (objets cachés isolés ou appartenant à calque caché)" -#: ../src/ui/dialog/inkscape-preferences.cpp:824 +#: ../src/ui/dialog/inkscape-preferences.cpp:825 msgid "Uncheck this to be able to select objects that are locked (either by themselves or by being in a locked layer)" msgstr "Si décoché, la sélection des objets verrouillés est possible (objets verrouillés isolés ou appartenant à un calque verrouillé)" -#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Uncheck this to be able to keep the current objects selected when the current layer changes" msgstr "Si décoché, les objets sélectionnés restent sélectionnés lorsque vous passez du calque courant à un autre" -#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Selecting" msgstr "Sélection" -#: ../src/ui/dialog/inkscape-preferences.cpp:836 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 msgid "Default export resolution:" msgstr "Résolution par défaut d’exportation :" -#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "Résolution par défaut (point par pouce) dans la boîte de dialogue exporter" -#: ../src/ui/dialog/inkscape-preferences.cpp:839 +#: ../src/ui/dialog/inkscape-preferences.cpp:840 msgid "Open Clip Art Library Server Name:" msgstr "Nom du serveur de bibliothèque Open Clip Art :" -#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:841 msgid "The server name of the Open Clip Art Library webdav server; it's used by the Import and Export to OCAL function" msgstr "Le nom du serveur webdav de la bibliothèque Open Clip Art ; il est utilisé par la fonction d’import et export vers OCAL." -#: ../src/ui/dialog/inkscape-preferences.cpp:842 +#: ../src/ui/dialog/inkscape-preferences.cpp:843 msgid "Open Clip Art Library Username:" msgstr "Nom d’utilisateur bibliothèque Open Clip Art :" -#: ../src/ui/dialog/inkscape-preferences.cpp:843 +#: ../src/ui/dialog/inkscape-preferences.cpp:844 msgid "The username used to log into Open Clip Art Library" msgstr "Le nom d’utilisateur pour se connecter à la bibliothèque Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:845 +#: ../src/ui/dialog/inkscape-preferences.cpp:846 msgid "Open Clip Art Library Password:" msgstr "Mot de passe de la bibliothèque Open Clip Art :" -#: ../src/ui/dialog/inkscape-preferences.cpp:846 +#: ../src/ui/dialog/inkscape-preferences.cpp:847 msgid "The password used to log into Open Clip Art Library" msgstr "Le mot de passe pour se connecter à la bibliothèque Open Clip Art" -#: ../src/ui/dialog/inkscape-preferences.cpp:848 +#: ../src/ui/dialog/inkscape-preferences.cpp:849 msgid "Import/Export" msgstr "Importer/Exporter" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Perceptual" msgstr "Perceptif" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Relative Colorimetric" msgstr "Colorimétrie relative" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Absolute Colorimetric" msgstr "Colorimétrie absolue" -#: ../src/ui/dialog/inkscape-preferences.cpp:902 +#: ../src/ui/dialog/inkscape-preferences.cpp:903 msgid "(Note: Color management has been disabled in this build)" msgstr "(NB : les fonctionnalités colorimétriques sont désactivées dans cette version)" -#: ../src/ui/dialog/inkscape-preferences.cpp:906 +#: ../src/ui/dialog/inkscape-preferences.cpp:907 msgid "Display adjustment" msgstr "Ajustement de l’affichage" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" @@ -16138,813 +16194,813 @@ msgstr "" "Le profil ICC à utiliser pour calibrer l’affichage.\n" "Répertoires parcourus :%s" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 +#: ../src/ui/dialog/inkscape-preferences.cpp:918 msgid "Display profile:" msgstr "Profil d’affichage :" -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 msgid "Retrieve profile from display" msgstr "Utiliser le profil proposé par le périphérique d’affichage." -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "Utiliser un profil parmi ceux correspondant aux périphériques d’affichage grâce à XICC" -#: ../src/ui/dialog/inkscape-preferences.cpp:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "Retrieve profiles from those attached to displays" msgstr "Utiliser un profil parmi ceux correspondant aux périphériques d’affichage" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:933 msgid "Display rendering intent:" msgstr "Intention de rendu de l’affichage :" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "The rendering intent to use to calibrate display output" msgstr "L’intention de rendu à utiliser pour calibrer la sortie de l’affichage" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Proofing" msgstr "Gestion des couleurs" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 +#: ../src/ui/dialog/inkscape-preferences.cpp:938 msgid "Simulate output on screen" msgstr "Simuler la sortie à l’écran" -#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:940 msgid "Simulates output of target device" msgstr "Simule la sortie du périphérique cible" -#: ../src/ui/dialog/inkscape-preferences.cpp:941 +#: ../src/ui/dialog/inkscape-preferences.cpp:942 msgid "Mark out of gamut colors" msgstr "Marquer les couleurs hors-gamut" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:944 msgid "Highlights colors that are out of gamut for the target device" msgstr "Mettre en exergue les couleurs qui sont en-dehors du gamut pour le périphérique cible" -#: ../src/ui/dialog/inkscape-preferences.cpp:948 +#: ../src/ui/dialog/inkscape-preferences.cpp:949 msgid "Out of gamut warning color:" msgstr "Couleur d’avertissement hors-gamut :" -#: ../src/ui/dialog/inkscape-preferences.cpp:949 +#: ../src/ui/dialog/inkscape-preferences.cpp:950 msgid "Selects the color used for out of gamut warning" msgstr "La couleur utilisée pour prévenir des problèmes de gamut" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 +#: ../src/ui/dialog/inkscape-preferences.cpp:952 msgid "Device profile:" msgstr "Profil du périphérique :" -#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/dialog/inkscape-preferences.cpp:953 msgid "The ICC profile to use to simulate device output" msgstr "Le profil ICC utilisé pour simuler la sortie du périphérique" -#: ../src/ui/dialog/inkscape-preferences.cpp:955 +#: ../src/ui/dialog/inkscape-preferences.cpp:956 msgid "Device rendering intent:" msgstr "Intention de rendu du périphérique :" -#: ../src/ui/dialog/inkscape-preferences.cpp:956 +#: ../src/ui/dialog/inkscape-preferences.cpp:957 msgid "The rendering intent to use to calibrate device output" msgstr "L’intention de rendu à utiliser pour calibrer le périphérique de sortie" -#: ../src/ui/dialog/inkscape-preferences.cpp:958 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Black point compensation" msgstr "Compensation du point noir" -#: ../src/ui/dialog/inkscape-preferences.cpp:960 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 msgid "Enables black point compensation" msgstr "Active la compensation du point noir" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Preserve black" msgstr "Préserver le noir" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 +#: ../src/ui/dialog/inkscape-preferences.cpp:968 msgid "(LittleCMS 1.15 or later required)" msgstr "(LittleCMS 1.15 ou version supérieure requis)" -#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "Préserver la composante N dans les transformaitons CMJN > CMJN" -#: ../src/ui/dialog/inkscape-preferences.cpp:982 -#: ../src/widgets/sp-color-icc-selector.cpp:297 -#: ../src/widgets/sp-color-icc-selector.cpp:570 +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/widgets/sp-color-icc-selector.cpp:304 +#: ../src/widgets/sp-color-icc-selector.cpp:577 msgid "" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1027 +#: ../src/ui/dialog/inkscape-preferences.cpp:1028 msgid "Color management" msgstr "Gestion de la couleur" -#: ../src/ui/dialog/inkscape-preferences.cpp:1032 +#: ../src/ui/dialog/inkscape-preferences.cpp:1033 msgid "Major grid line emphasizing" msgstr "Mise en valeur de la grille principale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1034 +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 msgid "Don't emphasize gridlines when zoomed out" msgstr "Ne pas mettre en valeur les lignes de grille lors du dézoom" -#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color" msgstr "Si coché, lors du dézoom, les lignes de grille seront affichées en couleur normale plutôt qu’avec la couleur de grille principale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Default grid settings" msgstr "Réglages par défaut de la grille" -#: ../src/ui/dialog/inkscape-preferences.cpp:1043 -#: ../src/ui/dialog/inkscape-preferences.cpp:1064 +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +#: ../src/ui/dialog/inkscape-preferences.cpp:1065 msgid "Grid units:" msgstr "Unités de la grille :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Origin X:" msgstr "Origine X :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Origin Y:" msgstr "Origine Y :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Spacing X:" msgstr "Espacement X :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Spacing Y:" msgstr "Espacement Y :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1053 #: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Grid line color:" msgstr "Couleur de la grille :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Color used for normal grid lines" msgstr "Sélectionner la couleur utilisée pour les lignes de la grille normale" -#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1077 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 #: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Major grid line color:" msgstr "Couleur de la grille principale :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Color used for major (highlighted) grid lines" msgstr "Couleur des lignes de la grille principale (mise en valeur)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1058 -#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1081 msgid "Major grid line every:" msgstr "Grille principale toutes les :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 msgid "Show dots instead of lines" msgstr "Afficher des points plutôt que des lignes" -#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "Cocher pour afficher des points aux intersections de la grille plutôt que des lignes" -#: ../src/ui/dialog/inkscape-preferences.cpp:1087 +#: ../src/ui/dialog/inkscape-preferences.cpp:1088 msgid "Use named colors" msgstr "Utiliser les couleurs nommées" -#: ../src/ui/dialog/inkscape-preferences.cpp:1088 +#: ../src/ui/dialog/inkscape-preferences.cpp:1089 msgid "If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value" msgstr "Si coché, écrit le nom CSS de la couleur si elle est disponible (rouge ou magenta, par exemple) à la place de sa valeur numérique" -#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 msgid "XML formatting" msgstr "Formatage XML" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +#: ../src/ui/dialog/inkscape-preferences.cpp:1093 msgid "Inline attributes" msgstr "Attributs en ligne" -#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 msgid "Put attributes on the same line as the element tag" msgstr "Place les attributs sur la même ligne que l’étiquette de l’élément" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "Indent, spaces:" msgstr "Distance d’indentation (en espaces) :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "The number of spaces to use for indenting nested elements; set to 0 for no indentation" msgstr "Le nombre d’espaces utilisés pour l’indentation d’éléments imbriqués ; définir à 0 pour désactiver l’indentation" -#: ../src/ui/dialog/inkscape-preferences.cpp:1098 +#: ../src/ui/dialog/inkscape-preferences.cpp:1099 msgid "Path data" msgstr "Données de chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:1100 +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 msgid "Allow relative coordinates" msgstr "Autorise les coordonnées relatives" -#: ../src/ui/dialog/inkscape-preferences.cpp:1101 +#: ../src/ui/dialog/inkscape-preferences.cpp:1102 msgid "If set, relative coordinates may be used in path data" msgstr "Si coché, les coordonnées relatives peuvent être utilisées dans les données du chemin" -#: ../src/ui/dialog/inkscape-preferences.cpp:1103 +#: ../src/ui/dialog/inkscape-preferences.cpp:1104 msgid "Force repeat commands" msgstr "Imposer les commandes répétitives" -#: ../src/ui/dialog/inkscape-preferences.cpp:1104 +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 msgid "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')" msgstr "Si coché, impose la répétition de la même commande de chemin (écrit 'L 1,2 L 3,4' à la place de 'L 1,2 3,4')." -#: ../src/ui/dialog/inkscape-preferences.cpp:1106 +#: ../src/ui/dialog/inkscape-preferences.cpp:1107 msgid "Numbers" msgstr "Nombres" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Numeric precision:" msgstr "Précision numérique :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Significant figures of the values written to the SVG file" msgstr "Nombre de chiffres significatifs des valeurs écrites dans le fichier SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "Minimum exponent:" msgstr "Exposant minimum :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero" msgstr "La taille minimale d’un nombre écrite dans le SVG est 10 à la puissance de cet exposant ; les nombres plus petits s’écriront zéro" -#: ../src/ui/dialog/inkscape-preferences.cpp:1114 +#: ../src/ui/dialog/inkscape-preferences.cpp:1115 msgid "SVG output" msgstr "Sortie SVG" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "System default" msgstr "Valeur par défaut du système d’exploitation" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Albanian (sq)" msgstr "Albanais (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Amharic (am)" msgstr "Amharique (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Arabic (ar)" msgstr "Arabe (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Armenian (hy)" msgstr "Arménien (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Azerbaijani (az)" msgstr "Azéri (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Basque (eu)" msgstr "Basque (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Belarusian (be)" msgstr "Biélorusse (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bulgarian (bg)" msgstr "Bulgare (bg)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bengali (bn)" msgstr "Bengali (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Breton (br)" msgstr "Breton (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Catalan (ca)" msgstr "Catalan (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Valencian Catalan (ca@valencia)" msgstr "Catalan Valencien (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Chinese/China (zh_CN)" msgstr "Chinois/Chine (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Chinese/Taiwan (zh_TW)" msgstr "Chinois/Taïwan (zh_TW)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Croatian (hr)" msgstr "Croate (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Czech (cs)" msgstr "Tchèque (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Danish (da)" msgstr "Danois (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dutch (nl)" msgstr "Néerlandais (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dzongkha (dz)" msgstr "Dzongkha (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "German (de)" msgstr "Allemand (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Greek (el)" msgstr "Grec (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English (en)" msgstr "Anglais (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English/Australia (en_AU)" msgstr "Anglais/Australie (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Canada (en_CA)" msgstr "Anglais/Canada (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Great Britain (en_GB)" msgstr "Anglais/Grande-Bretagne (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "Pig Latin (en_US@piglatin)" msgstr "Pig Latin (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Esperanto (eo)" msgstr "Espéranto (eo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Estonian (et)" msgstr "Estonien (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Farsi (fa)" msgstr "Farsi (fa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Finnish (fi)" msgstr "Finnois (fi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "French (fr)" msgstr "Français (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Irish (ga)" msgstr "Irlandais (ga)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Galician (gl)" msgstr "Galicien (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hebrew (he)" msgstr "Hébreu (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hungarian (hu)" msgstr "Hongrois (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Indonesian (id)" msgstr "Indonésien (id)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Italian (it)" msgstr "Italien (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Japanese (ja)" msgstr "Japonais (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Khmer (km)" msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Kinyarwanda (rw)" msgstr "Kinyarouanda (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Korean (ko)" msgstr "Coréen (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Lithuanian (lt)" msgstr "Lituanien (lt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Macedonian (mk)" msgstr "Macédonien (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Mongolian (mn)" msgstr "Mongol (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Nepali (ne)" msgstr "Népalais (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Bokmål (nb)" msgstr "Norvégien Bokmål (nb)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Nynorsk (nn)" msgstr "Norvégien Nynorsk (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Panjabi (pa)" msgstr "Panjabi (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Polish (pl)" msgstr "Polonais (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese (pt)" msgstr "Portugais (pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese/Brazil (pt_BR)" msgstr "Portugais/Brésil (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Romanian (ro)" msgstr "Roumain (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Russian (ru)" msgstr "Russe (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian (sr)" msgstr "Serbe (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian in Latin script (sr@latin)" msgstr "Serbe en alphabet latin (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovak (sk)" msgstr "Slovaque (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovenian (sl)" msgstr "Slovène (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish (es)" msgstr "Espagnol (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish/Mexico (es_MX)" msgstr "Espagnol/Mexique (es_MX)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Swedish (sv)" msgstr "Suédois (sv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Telugu (te_IN)" msgstr "Télougou (te_IN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Thai (th)" msgstr "Thaï (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Turkish (tr)" msgstr "Turc (tr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Ukrainian (uk)" msgstr "Ukrainien (uk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Vietnamese (vi)" msgstr "Vietnamien (vi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 msgid "Language (requires restart):" msgstr "Langue (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 msgid "Set the language for menus and number formats" msgstr "Définit la langue pour les menus et les formats numériques" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Large" msgstr "Grand" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Small" msgstr "Petit" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Smaller" msgstr "Minuscule" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "Toolbox icon size:" msgstr "Taille des icônes de la barre d’outils :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +#: ../src/ui/dialog/inkscape-preferences.cpp:1171 msgid "Set the size for the tool icons (requires restart)" msgstr "Définit la taille des icônes de la barre d’outils (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 msgid "Control bar icon size:" msgstr "Taille des icônes de la barre de contrôle des outils :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "Définit la taille des icônes de la barre de contrôle des outils (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/ui/dialog/inkscape-preferences.cpp:1178 msgid "Secondary toolbar icon size:" msgstr "Taille des icônes de la barre d’outils secondaire :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1178 +#: ../src/ui/dialog/inkscape-preferences.cpp:1179 msgid "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "Définit la taille des icônes de la barre d’outils secondaire (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Work-around color sliders not drawing" msgstr "Contourner le non affichage des barres de défilement de couleur" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 msgid "When on, will attempt to work around bugs in certain GTK themes drawing color sliders" msgstr "Si activé, essayera de contourner un défaut d’affichage des barres de défilement de couleur lié à certains thèmes GTK" -#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Clear list" msgstr "Effacer la liste" -#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Maximum documents in Open Recent:" msgstr "Nombre maximum de documents récents :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Set the maximum length of the Open Recent list in the File menu, or clear the list" msgstr "Définit la longueur maximum de la liste « Documents récents » dans le menu « Fichier », ou efface la liste" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Zoom correction factor (in %):" msgstr "Niveau de correction du zoom (en %) :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1200 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 display objects in their true sizes" msgstr "Ajuster le curseur pour faire correspondre la longueur de la règle sur l’écran avec sa vraie valeur. Cette information est utilisée lors des zoom de niveau 1:1, 1:2, etc. pour afficher les objets avec leur taille exacte" -#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1203 msgid "Enable dynamic relayout for incomplete sections" msgstr "Activer la remise en forme dynamique des sections incomplètes" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 msgid "When on, will allow dynamic layout of components that are not completely finished being refactored" msgstr "Lorsqu’activé, autorise la mise en forme dynamique des composants dont le réusinage n’est pas complètement achevé" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Interface" msgstr "Interface" -#: ../src/ui/dialog/inkscape-preferences.cpp:1213 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "Use current directory for \"Save As ...\"" msgstr "« Enregistrer sous... » utilise le dossier courant " -#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 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" msgstr "Lorsque cette option est active, les boîtes de dialogue « Enregistrer sous... » et « Enregistrer une copie... » s’ouvrent toujours dans le dossier contenant le document actuellement ouvert ; si l’option est désactivée, elles ouvrent alors le dernier dossier dans lequel un fichier a été enregistré avec ces boîtes de dialogue" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Enable autosave (requires restart)" msgstr "Activer l’enregistrement automatique (nécessite un redémarrage)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 msgid "Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash" msgstr "Enregistre automatiquement les documents en cours, à intervalle donné, pour diminuer les risques de perte de données en cas de plantage de l’application" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes):" msgstr "Intervalle (en minutes) :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes) at which document will be autosaved" msgstr "Définit l’intervalle (en minutes) auquel l’espace de travail sera enregistré automatiquement" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgctxt "Filesystem" msgid "Path:" msgstr "Chemin :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgid "The directory where autosaves will be written" msgstr "Définit l’emplacement des enregistrements automatiques" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Maximum number of autosaves:" msgstr "Nombre maximum d’enregistrements :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Maximum number of autosaved files; use this to limit the storage space used" msgstr "Nombre maximum d’enregistrements automatiques ; utiliser cette valeur pour limiter l’espace de stockage utilisé" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "2x2" msgstr "2x2" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "4x4" msgstr "4x4" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "8x8" msgstr "8x8" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "16x16" msgstr "16x16" -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 msgid "Oversample bitmaps:" msgstr "Sur-échantilloner les bitmaps :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +#: ../src/ui/dialog/inkscape-preferences.cpp:1256 msgid "Automatically reload bitmaps" msgstr "Recharger automatiquement les bitmaps" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "Automatically reload linked images when file is changed on disk" msgstr "Active le rechargement automatique des images liées lorsqu’elles ont été modifiées sur le disque" -#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:1260 msgid "Bitmap editor:" msgstr "Éditeur de bitmap :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "Resolution for Create Bitmap Copy:" msgstr "Résolution pour Créer une copie bitmap :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 msgid "Resolution used by the Create Bitmap Copy command" msgstr "Résolution utilisée par la commande Créer une copie bitmap" -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 msgid "Bitmaps" msgstr "Bitmaps" -#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 msgid "Set the main spell check language" msgstr "Définit la langue principale du correcteur orthographique" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Second language:" msgstr "Deuxième langue :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 msgid "Set the second spell check language; checking will only stop on words unknown in ALL chosen languages" msgstr "Définit la deuxième langue du correcteur orthographique ; la vérification ne s’arrêtera que sur les mots inconnus de toutes les langues sélectionnées" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgid "Third language:" msgstr "Troisième langue :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +#: ../src/ui/dialog/inkscape-preferences.cpp:1326 msgid "Set the third spell check language; checking will only stop on words unknown in ALL chosen languages" msgstr "Définit la troisième langue du correcteur orthographique ; la vérification ne s’arrêtera que sur les mots inconnus de toutes les langues sélectionnées" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 msgid "Ignore words with digits" msgstr "Ignorer les mots contenant des chiffres" -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "Ignorer les mots contenant des chiffres, comme « R2D2 »" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 msgid "Ignore words in ALL CAPITALS" msgstr "Ignorer les mots tout en capitales" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1334 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "Ignorer les mots tout en capitales, comme « GNU »" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "Spellcheck" msgstr "Vérification orthographique" -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Add label comments to printing output" msgstr "Ajouter les labels de commentaires à l’impression" -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 msgid "When on, a comment will be added to the raw print output, marking the rendered output for an object with its label" msgstr "Si coché, un commentaire est ajouté à l’impression brute, signalant le rendu d’un objet avec son label" -#: ../src/ui/dialog/inkscape-preferences.cpp:1358 +#: ../src/ui/dialog/inkscape-preferences.cpp:1359 msgid "Prevent sharing of gradient definitions" msgstr "Interdire le partage des définitions de dégradé" -#: ../src/ui/dialog/inkscape-preferences.cpp:1360 +#: ../src/ui/dialog/inkscape-preferences.cpp:1361 msgid "When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient" msgstr "Si coché, les définitions communes de dégradés sont automatiquement dupliquées lors d’une modification; décocher pour autoriser le partage des définitions de dégradé de manière à ce que la modification d’un objet puisse affecter tous les objets utilisant le même dégradé" -#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Simplification threshold:" msgstr "Seuil de simplification :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 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 aggressively; invoking it again after a pause restores the default threshold." msgstr "Force par défaut de la commande Simplifier. En faisant appel à cette commande plusieurs fois de suite, elle agira de façon de plus en plus agressive ; un appel après une pause restaurera la valeur par défaut." -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "Latency skew:" msgstr "Décalage temporel :" -#: ../src/ui/dialog/inkscape-preferences.cpp:1368 +#: ../src/ui/dialog/inkscape-preferences.cpp:1369 msgid "Factor by which the event clock is skewed from the actual time (0.9766 on some systems)" msgstr "Facteur de décalage entre l’horloge de l’événement et le temps réel (0,9766 sur certains systèmes)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Pre-render named icons" msgstr "Préafficher les icônes nommées" -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 msgid "When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification" msgstr "Si coché, les icônes nommées sont rendues avant l’affichage de l’interface utilisateur. Il s’agit du contournement d’un bug sur la notification des icônes nommées dans GTK+." #. TRANSLATORS: following strings are paths in Inkscape preferences - Misc - System info -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "User config: " msgstr "Configuration utilisateur : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1382 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "User data: " msgstr "Données utilisateur : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1386 +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 msgid "User cache: " msgstr "Cache utilisateur : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1390 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "System config: " msgstr "Configuration système : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "System data: " msgstr "Données système : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +#: ../src/ui/dialog/inkscape-preferences.cpp:1397 msgid "PIXMAP: " msgstr "Pixmap : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +#: ../src/ui/dialog/inkscape-preferences.cpp:1401 msgid "DATA: " msgstr "Données : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "UI: " msgstr "Interface utilisateur : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +#: ../src/ui/dialog/inkscape-preferences.cpp:1414 msgid "Icon theme: " msgstr "Thème d’icônes : " -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "System info" msgstr "Informations système" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "General system information" msgstr "Informations générales" -#: ../src/ui/dialog/inkscape-preferences.cpp:1430 +#: ../src/ui/dialog/inkscape-preferences.cpp:1431 msgid "Misc" msgstr "Divers" @@ -17687,8 +17743,8 @@ msgstr "Passes multiples : crée un groupe de chemins" #. # end multiple scan #. ## end mode page #: ../src/ui/dialog/tracedialog.cpp:563 -#: ../src/widgets/toolbox.cpp:4502 -#: ../src/widgets/toolbox.cpp:4760 +#: ../src/widgets/toolbox.cpp:4520 +#: ../src/widgets/toolbox.cpp:4778 msgid "Mode" msgstr "Mode" @@ -18621,13 +18677,13 @@ msgstr "Aucun contour" #: ../src/ui/widget/selected-style.cpp:167 #: ../src/ui/widget/style-swatch.cpp:277 -#: ../src/widgets/paint-selector.cpp:237 +#: ../src/widgets/paint-selector.cpp:233 msgid "Pattern" msgstr "Motif" #: ../src/ui/widget/selected-style.cpp:170 #: ../src/ui/widget/style-swatch.cpp:279 -#: ../src/widgets/paint-selector.cpp:1025 +#: ../src/widgets/paint-selector.cpp:1021 msgid "Pattern fill" msgstr "Motif de remplissage" @@ -18753,7 +18809,7 @@ msgid "White" msgstr "Blanc" #: ../src/ui/widget/selected-style.cpp:237 -#: ../src/widgets/sp-color-icc-selector.cpp:231 +#: ../src/widgets/sp-color-icc-selector.cpp:232 #: ../src/widgets/sp-color-scales.cpp:466 #: ../src/widgets/sp-color-scales.cpp:467 msgid "Black" @@ -21004,17 +21060,17 @@ msgid "Set pattern on stroke" msgstr "Appliquer un motif à un contour" #. Family frame -#: ../src/widgets/font-selector.cpp:150 +#: ../src/widgets/font-selector.cpp:143 msgid "Font family" msgstr "Famille de police" #. Style frame -#: ../src/widgets/font-selector.cpp:181 +#: ../src/widgets/font-selector.cpp:174 msgctxt "Font selector" msgid "Style" msgstr "Style" -#: ../src/widgets/font-selector.cpp:219 +#: ../src/widgets/font-selector.cpp:212 #: ../share/extensions/dots.inx.h:2 msgid "Font size:" msgstr "Taille de police :" @@ -21061,14 +21117,14 @@ msgid "Edit the stops of the gradient" msgstr "Éditer les stops du dégradé" #: ../src/widgets/gradient-toolbar.cpp:543 -#: ../src/widgets/toolbox.cpp:2899 -#: ../src/widgets/toolbox.cpp:2979 -#: ../src/widgets/toolbox.cpp:3303 -#: ../src/widgets/toolbox.cpp:3341 -#: ../src/widgets/toolbox.cpp:3959 -#: ../src/widgets/toolbox.cpp:3983 -#: ../src/widgets/toolbox.cpp:5607 -#: ../src/widgets/toolbox.cpp:5636 +#: ../src/widgets/toolbox.cpp:2917 +#: ../src/widgets/toolbox.cpp:2997 +#: ../src/widgets/toolbox.cpp:3321 +#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3977 +#: ../src/widgets/toolbox.cpp:4001 +#: ../src/widgets/toolbox.cpp:5625 +#: ../src/widgets/toolbox.cpp:5654 msgid "New:" msgstr "Créer :" @@ -21096,18 +21152,18 @@ msgstr "Appliquer le dégradé au contour" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); #: ../src/widgets/gradient-toolbar.cpp:622 -#: ../src/widgets/toolbox.cpp:2901 -#: ../src/widgets/toolbox.cpp:3311 +#: ../src/widgets/toolbox.cpp:2919 #: ../src/widgets/toolbox.cpp:3329 -#: ../src/widgets/toolbox.cpp:3961 -#: ../src/widgets/toolbox.cpp:3972 -#: ../src/widgets/toolbox.cpp:5610 -#: ../src/widgets/toolbox.cpp:5621 +#: ../src/widgets/toolbox.cpp:3347 +#: ../src/widgets/toolbox.cpp:3979 +#: ../src/widgets/toolbox.cpp:3990 +#: ../src/widgets/toolbox.cpp:5628 +#: ../src/widgets/toolbox.cpp:5639 msgid "Change:" msgstr "Modifier :" #: ../src/widgets/gradient-vector.cpp:275 -#: ../src/widgets/paint-selector.cpp:912 +#: ../src/widgets/paint-selector.cpp:908 #: ../src/widgets/stroke-style.cpp:421 msgid "No document selected" msgstr "Aucun document sélectionné" @@ -21124,217 +21180,217 @@ msgstr "Aucun dégradé n’est sélectionné" msgid "No stops in gradient" msgstr "Il n’y a pas de stop dans le dégradé" -#: ../src/widgets/gradient-vector.cpp:667 +#: ../src/widgets/gradient-vector.cpp:666 msgid "Change gradient stop offset" msgstr "Modifier le décalage d’un stop de dégradé" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:806 +#: ../src/widgets/gradient-vector.cpp:805 msgid "Add stop" msgstr "Ajouter un stop" -#: ../src/widgets/gradient-vector.cpp:809 +#: ../src/widgets/gradient-vector.cpp:808 msgid "Add another control stop to gradient" msgstr "Ajouter un nouveau stop de contrôle au dégradé" -#: ../src/widgets/gradient-vector.cpp:811 +#: ../src/widgets/gradient-vector.cpp:810 msgid "Delete stop" msgstr "Supprimer un stop" -#: ../src/widgets/gradient-vector.cpp:814 +#: ../src/widgets/gradient-vector.cpp:813 msgid "Delete current control stop from gradient" msgstr "Supprimer le stop courant du dégradé" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:870 +#: ../src/widgets/gradient-vector.cpp:869 msgid "Stop Color" msgstr "Couleur du stop" -#: ../src/widgets/gradient-vector.cpp:900 +#: ../src/widgets/gradient-vector.cpp:899 msgid "Gradient editor" msgstr "Éditeur de dégradé" -#: ../src/widgets/gradient-vector.cpp:1188 +#: ../src/widgets/gradient-vector.cpp:1187 msgid "Change gradient stop color" msgstr "Modifier la couleur d’un stop de dégradé" -#: ../src/widgets/paint-selector.cpp:229 -#: ../src/widgets/paint-selector.cpp:612 +#: ../src/widgets/paint-selector.cpp:225 +#: ../src/widgets/paint-selector.cpp:608 msgid "No paint" msgstr "Pas de remplissage" -#: ../src/widgets/paint-selector.cpp:231 -#: ../src/widgets/paint-selector.cpp:676 +#: ../src/widgets/paint-selector.cpp:227 +#: ../src/widgets/paint-selector.cpp:672 msgid "Flat color" msgstr "Aplat" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:233 -#: ../src/widgets/paint-selector.cpp:739 +#: ../src/widgets/paint-selector.cpp:229 +#: ../src/widgets/paint-selector.cpp:735 msgid "Linear gradient" msgstr "Dégradé linéaire" -#: ../src/widgets/paint-selector.cpp:235 -#: ../src/widgets/paint-selector.cpp:742 +#: ../src/widgets/paint-selector.cpp:231 +#: ../src/widgets/paint-selector.cpp:738 msgid "Radial gradient" msgstr "Dégradé radial" -#: ../src/widgets/paint-selector.cpp:239 +#: ../src/widgets/paint-selector.cpp:235 msgid "Swatch" msgstr "Échantillon" -#: ../src/widgets/paint-selector.cpp:241 +#: ../src/widgets/paint-selector.cpp:237 msgid "Unset paint (make it undefined so it can be inherited)" msgstr "Remplissage indéfini (permettant ainsi qu’il soit hérité)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:253 +#: ../src/widgets/paint-selector.cpp:249 msgid "Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)" msgstr "Toute intersection d’un chemin avec lui-même ou avec un de ses sous-chemins engendrera des lacunes dans le remplissage (fill-rule: evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:264 +#: ../src/widgets/paint-selector.cpp:260 msgid "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "Le remplissage est sans lacune, sauf si un sous-chemin est en sens inverse (fill-rule: nonzero)" -#: ../src/widgets/paint-selector.cpp:579 +#: ../src/widgets/paint-selector.cpp:575 msgid "No objects" msgstr "Aucun objet" -#: ../src/widgets/paint-selector.cpp:590 +#: ../src/widgets/paint-selector.cpp:586 msgid "Multiple styles" msgstr "Styles multiples" -#: ../src/widgets/paint-selector.cpp:601 +#: ../src/widgets/paint-selector.cpp:597 msgid "Paint is undefined" msgstr "Remplissage indéfini" -#: ../src/widgets/paint-selector.cpp:1012 +#: ../src/widgets/paint-selector.cpp:1008 msgid "Use the Node tool to adjust position, scale, and rotation of the pattern on canvas. Use Object > Pattern > Objects to Pattern to create a new pattern from selection." msgstr "Utiliser l'outil nœud pour ajuster la position, l’échelle et l’angle du motif sur la zone de travail. Utiliser Objet > Motifs > Objets en Motif pour créer un nouveau motif à partir de la sélection." -#: ../src/widgets/paint-selector.cpp:1100 +#: ../src/widgets/paint-selector.cpp:1096 msgid "Swatch fill" msgstr "Remplissage de l’échantillon" -#: ../src/widgets/select-toolbar.cpp:249 +#: ../src/widgets/select-toolbar.cpp:256 msgid "Transform by toolbar" msgstr "Transformer via la barre d’outils" -#: ../src/widgets/select-toolbar.cpp:322 +#: ../src/widgets/select-toolbar.cpp:329 msgid "Now stroke width is scaled when objects are scaled." msgstr "Maintenant l'épaisseur de contour est redimensionnée quand les objets sont redimensionnés." -#: ../src/widgets/select-toolbar.cpp:324 +#: ../src/widgets/select-toolbar.cpp:331 msgid "Now stroke width is not scaled when objects are scaled." msgstr "Maintenant l'épaisseur de contour n’est pas redimensionnée quand les objets sont redimensionnés." -#: ../src/widgets/select-toolbar.cpp:335 +#: ../src/widgets/select-toolbar.cpp:342 msgid "Now rounded rectangle corners are scaled when rectangles are scaled." msgstr "Maintenant les coins arrondis de rectangles sont redimensionnés quand les rectangles sont redimensionnés." -#: ../src/widgets/select-toolbar.cpp:337 +#: ../src/widgets/select-toolbar.cpp:344 msgid "Now rounded rectangle corners are not scaled when rectangles are scaled." msgstr "Maintenant les coins arrondis de rectangles ne sont pas redimensionnés quand les rectangles sont redimensionnés." -#: ../src/widgets/select-toolbar.cpp:348 +#: ../src/widgets/select-toolbar.cpp:355 msgid "Now gradients are transformed along with their objects when those are transformed (moved, scaled, rotated, or skewed)." msgstr "Maintenant les dégradés sont transformés lors des transformations de leurs objets (déplacement, redimensionnement, rotation ou inclinaison)." -#: ../src/widgets/select-toolbar.cpp:350 +#: ../src/widgets/select-toolbar.cpp:357 msgid "Now gradients remain fixed when objects are transformed (moved, scaled, rotated, or skewed)." msgstr "Maintenant les dégradés restent fixes lors des transformations de leurs objets (déplacement, redimensionnement, rotation, ou inclinaison)." -#: ../src/widgets/select-toolbar.cpp:361 +#: ../src/widgets/select-toolbar.cpp:368 msgid "Now patterns are transformed along with their objects when those are transformed (moved, scaled, rotated, or skewed)." msgstr "Maintenant les motifs sont transformés lors des transformations de leurs objets (déplacement, redimensionnement, rotation ou inclinaison)." -#: ../src/widgets/select-toolbar.cpp:363 +#: ../src/widgets/select-toolbar.cpp:370 msgid "Now patterns remain fixed when objects are transformed (moved, scaled, rotated, or skewed)." msgstr "Maintenant les motifs restent fixes lors des transformations de leurs objets (déplacement, redimensionnement, rotation, ou inclinaison)." #. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X position" msgstr "Position X" -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X:" msgstr "X :" -#: ../src/widgets/select-toolbar.cpp:478 +#: ../src/widgets/select-toolbar.cpp:485 msgid "Horizontal coordinate of selection" msgstr "Coordonnée horizontale de la sélection" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y position" msgstr "Position Y" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y:" msgstr "Y :" -#: ../src/widgets/select-toolbar.cpp:484 +#: ../src/widgets/select-toolbar.cpp:491 msgid "Vertical coordinate of selection" msgstr "Coordonnée verticale de la sélection" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "Width" msgstr "Largeur" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "W:" msgstr "L :" -#: ../src/widgets/select-toolbar.cpp:490 +#: ../src/widgets/select-toolbar.cpp:497 msgid "Width of selection" msgstr "Largeur de la sélection" -#: ../src/widgets/select-toolbar.cpp:497 +#: ../src/widgets/select-toolbar.cpp:504 msgid "Lock width and height" msgstr "Verrouiller la largeur et la hauteur" -#: ../src/widgets/select-toolbar.cpp:498 +#: ../src/widgets/select-toolbar.cpp:505 msgid "When locked, change both width and height by the same proportion" msgstr "Si coché, la hauteur et la largeur sont modifiées selon la même proportion" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "Height" msgstr "Hauteur" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "H:" msgstr "H :" -#: ../src/widgets/select-toolbar.cpp:509 +#: ../src/widgets/select-toolbar.cpp:516 msgid "Height of selection" msgstr "Hauteur de la sélection" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "Affect:" msgstr "Affecter :" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "Control whether or not to scale stroke widths, scale rectangle corners, transform gradient fills, and transform pattern fills with the object" msgstr "Définit si l’épaisseur des contours, les coins des rectangles, et les remplissages par gradient ou par motif doivent être affectés par le redimensionnement de l’objet" -#: ../src/widgets/select-toolbar.cpp:565 +#: ../src/widgets/select-toolbar.cpp:572 msgid "Scale rounded corners" msgstr "Redimensionner les coins arrondis des rectangles" -#: ../src/widgets/select-toolbar.cpp:576 +#: ../src/widgets/select-toolbar.cpp:583 msgid "Move gradients" msgstr "Déplacer les dégradés" -#: ../src/widgets/select-toolbar.cpp:587 +#: ../src/widgets/select-toolbar.cpp:594 msgid "Move patterns" msgstr "Déplacer les motifs" @@ -21342,105 +21398,105 @@ msgstr "Déplacer les motifs" msgid "System" msgstr "Système" -#: ../src/widgets/sp-color-icc-selector.cpp:105 +#: ../src/widgets/sp-color-icc-selector.cpp:106 msgid "CMS" msgstr "CMS" # Red (in RGB) -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:402 msgid "_R:" msgstr "_R :" # Green (in RGB) -#: ../src/widgets/sp-color-icc-selector.cpp:213 #: ../src/widgets/sp-color-icc-selector.cpp:214 +#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-scales.cpp:405 msgid "_G:" msgstr "_V :" # Blue (in RGB) -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:408 msgid "_B:" msgstr "_B :" # Hue (in HSL) -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:428 msgid "_H:" msgstr "_T :" # Saturation (in HSL) -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:431 msgid "_S:" msgstr "_S :" # Luminosity (in HSL) -#: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:434 msgid "_L:" msgstr "_L :" # Cyan (in CYMK) -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:456 msgid "_C:" msgstr "_C :" # Magenta (in CYMK) -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:459 msgid "_M:" msgstr "_M :" # BlacK (in CYMK) -#: ../src/widgets/sp-color-icc-selector.cpp:217 +#: ../src/widgets/sp-color-icc-selector.cpp:218 #: ../src/widgets/sp-color-scales.cpp:465 msgid "_K:" msgstr "_N :" -#: ../src/widgets/sp-color-icc-selector.cpp:228 +#: ../src/widgets/sp-color-icc-selector.cpp:229 msgid "Gray" msgstr "Niveaux de gris" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:457 #: ../src/widgets/sp-color-scales.cpp:458 msgid "Cyan" msgstr "Cyan" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:460 #: ../src/widgets/sp-color-scales.cpp:461 msgid "Magenta" msgstr "Magenta" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:463 #: ../src/widgets/sp-color-scales.cpp:464 msgid "Yellow" msgstr "Jaune" -#: ../src/widgets/sp-color-icc-selector.cpp:287 +#: ../src/widgets/sp-color-icc-selector.cpp:294 msgid "Fix" msgstr "Fixer" -#: ../src/widgets/sp-color-icc-selector.cpp:290 +#: ../src/widgets/sp-color-icc-selector.cpp:297 msgid "Fix RGB fallback to match icc-color() value." msgstr "Fixer une valeur RVB de secours pour correspondre à la valeur icc-color()." # Alpha (opacity) #. Label -#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:378 #: ../src/widgets/sp-color-scales.cpp:411 #: ../src/widgets/sp-color-scales.cpp:437 #: ../src/widgets/sp-color-scales.cpp:468 @@ -21448,8 +21504,8 @@ msgstr "Fixer une valeur RVB de secours pour correspondre à la valeur icc-color msgid "_A:" msgstr "_A :" -#: ../src/widgets/sp-color-icc-selector.cpp:381 -#: ../src/widgets/sp-color-icc-selector.cpp:393 +#: ../src/widgets/sp-color-icc-selector.cpp:388 +#: ../src/widgets/sp-color-icc-selector.cpp:400 #: ../src/widgets/sp-color-scales.cpp:412 #: ../src/widgets/sp-color-scales.cpp:413 #: ../src/widgets/sp-color-scales.cpp:438 @@ -21461,24 +21517,24 @@ msgstr "_A :" msgid "Alpha (opacity)" msgstr "Alpha (opacité)" -#: ../src/widgets/sp-color-notebook.cpp:337 +#: ../src/widgets/sp-color-notebook.cpp:339 msgid "Color Managed" msgstr "Couleur gérée" -#: ../src/widgets/sp-color-notebook.cpp:344 +#: ../src/widgets/sp-color-notebook.cpp:346 msgid "Out of gamut!" msgstr "Hors gamut !" -#: ../src/widgets/sp-color-notebook.cpp:351 +#: ../src/widgets/sp-color-notebook.cpp:353 msgid "Too much ink!" msgstr "Trop d’encre !" #. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:358 +#: ../src/widgets/sp-color-notebook.cpp:360 msgid "RGBA_:" msgstr "RVBA _:" -#: ../src/widgets/sp-color-notebook.cpp:366 +#: ../src/widgets/sp-color-notebook.cpp:368 msgid "Hexadecimal RGBA value of the color" msgstr "Valeur hexadécimale RVBA de la couleur" @@ -21820,7 +21876,7 @@ msgid "Y coordinate of selected node(s)" msgstr "Coordonnée Y de la sélection" #: ../src/widgets/toolbox.cpp:1667 -#: ../src/widgets/toolbox.cpp:7607 +#: ../src/widgets/toolbox.cpp:7625 msgid "Font Size" msgstr "Taille de police" @@ -21837,1405 +21893,1414 @@ msgstr "Taille de police à utiliser pour les labels des mesures" msgid "The units to be used for the measurements" msgstr "Unité à utiliser pour les mesures" -#: ../src/widgets/toolbox.cpp:2281 +#: ../src/widgets/toolbox.cpp:2286 msgid "Bounding box" msgstr "Boîte englobante" -#: ../src/widgets/toolbox.cpp:2281 +#: ../src/widgets/toolbox.cpp:2286 msgid "Snap bounding box corners" msgstr "Aimanter aux coins des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2290 +#: ../src/widgets/toolbox.cpp:2295 msgid "Bounding box edges" msgstr "Bords des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2290 +#: ../src/widgets/toolbox.cpp:2295 msgid "Snap to edges of a bounding box" msgstr "Aimanter aux bords des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2299 +#: ../src/widgets/toolbox.cpp:2304 msgid "Bounding box corners" msgstr "Coins des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2299 +#: ../src/widgets/toolbox.cpp:2304 msgid "Snap to bounding box corners" msgstr "Aimanter aux coins des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2308 +#: ../src/widgets/toolbox.cpp:2313 msgid "BBox Edge Midpoints" msgstr "Milieux des bords de la boîte englobante" -#: ../src/widgets/toolbox.cpp:2308 +#: ../src/widgets/toolbox.cpp:2313 msgid "Snap from and to midpoints of bounding box edges" msgstr "Aimanter depuis et vers le milieu des bords des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2323 msgid "BBox Centers" msgstr "Centre des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2323 msgid "Snapping from and to centers of bounding boxes" msgstr "Aimanter depuis et vers le centre des boîtes englobantes" -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2332 msgid "Snap nodes or handles" msgstr "Aimanter aux nœuds ou aux poignées" -#: ../src/widgets/toolbox.cpp:2335 +#: ../src/widgets/toolbox.cpp:2340 msgid "Snap to paths" msgstr "Aimanter aux chemins" -#: ../src/widgets/toolbox.cpp:2344 +#: ../src/widgets/toolbox.cpp:2349 msgid "Path intersections" msgstr "Intersections des chemins" -#: ../src/widgets/toolbox.cpp:2344 +#: ../src/widgets/toolbox.cpp:2349 msgid "Snap to path intersections" msgstr "Aimanter aux intersections des chemins" -#: ../src/widgets/toolbox.cpp:2353 +#: ../src/widgets/toolbox.cpp:2358 msgid "To nodes" msgstr "Aux nœuds" -#: ../src/widgets/toolbox.cpp:2353 +#: ../src/widgets/toolbox.cpp:2358 msgid "Snap to cusp nodes" msgstr "Aimanter aux points de rebroussement" -#: ../src/widgets/toolbox.cpp:2362 +#: ../src/widgets/toolbox.cpp:2367 msgid "Smooth nodes" msgstr "Nœuds doux" -#: ../src/widgets/toolbox.cpp:2362 +#: ../src/widgets/toolbox.cpp:2367 msgid "Snap to smooth nodes" msgstr "Aimanter aux nœuds doux" -#: ../src/widgets/toolbox.cpp:2371 +#: ../src/widgets/toolbox.cpp:2376 msgid "Line Midpoints" msgstr "Milieu de ligne" -#: ../src/widgets/toolbox.cpp:2371 +#: ../src/widgets/toolbox.cpp:2376 msgid "Snap from and to midpoints of line segments" msgstr "Aimanter depuis et vers le milieu des segments" -#: ../src/widgets/toolbox.cpp:2380 +#: ../src/widgets/toolbox.cpp:2385 msgid "Others" msgstr "Autres" -#: ../src/widgets/toolbox.cpp:2380 +#: ../src/widgets/toolbox.cpp:2385 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "Aimanter à d'autres points (centres, origines de guide, poignées de gradients, etc.)" -#: ../src/widgets/toolbox.cpp:2388 +#: ../src/widgets/toolbox.cpp:2393 msgid "Object Centers" msgstr "Centres d’objet" -#: ../src/widgets/toolbox.cpp:2388 +#: ../src/widgets/toolbox.cpp:2393 msgid "Snap from and to centers of objects" msgstr "Aimanter depuis et vers le centre des objets" -#: ../src/widgets/toolbox.cpp:2397 +#: ../src/widgets/toolbox.cpp:2402 msgid "Rotation Centers" msgstr "Centres de rotation" -#: ../src/widgets/toolbox.cpp:2397 +#: ../src/widgets/toolbox.cpp:2402 msgid "Snap from and to an item's rotation center" msgstr "Aimanter depuis et vers le centre de rotation d’un objet" -#: ../src/widgets/toolbox.cpp:2406 +#: ../src/widgets/toolbox.cpp:2411 +msgid "Text baseline" +msgstr "Ligne de base de texte" + +#: ../src/widgets/toolbox.cpp:2411 +#, fuzzy +msgid "Snap from and to text anchors and baselines" +msgstr "Aimanter depuis et vers le centre des objets" + +#: ../src/widgets/toolbox.cpp:2421 msgid "Page border" msgstr "Bords de la page" -#: ../src/widgets/toolbox.cpp:2406 +#: ../src/widgets/toolbox.cpp:2421 msgid "Snap to the page border" msgstr "Aimanter aux bords de la page" -#: ../src/widgets/toolbox.cpp:2415 +#: ../src/widgets/toolbox.cpp:2430 msgid "Snap to grids" msgstr "Aimanter aux grilles" -#: ../src/widgets/toolbox.cpp:2424 +#: ../src/widgets/toolbox.cpp:2439 msgid "Snap to guides" msgstr "Aimanter aux guides" -#: ../src/widgets/toolbox.cpp:2634 +#: ../src/widgets/toolbox.cpp:2652 msgid "Star: Change number of corners" msgstr "Étoile : modifier le nombre de sommets" -#: ../src/widgets/toolbox.cpp:2682 +#: ../src/widgets/toolbox.cpp:2700 msgid "Star: Change spoke ratio" msgstr "Étoile : modifier le ratio des rayons" -#: ../src/widgets/toolbox.cpp:2727 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make polygon" msgstr "Transformer en polygone" -#: ../src/widgets/toolbox.cpp:2727 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make star" msgstr "Transformer en étoile" -#: ../src/widgets/toolbox.cpp:2765 +#: ../src/widgets/toolbox.cpp:2783 msgid "Star: Change rounding" msgstr "Étoile : modifier l’arrondi" -#: ../src/widgets/toolbox.cpp:2803 +#: ../src/widgets/toolbox.cpp:2821 msgid "Star: Change randomization" msgstr "Étoile : modifier le hasard" -#: ../src/widgets/toolbox.cpp:2998 +#: ../src/widgets/toolbox.cpp:3016 msgid "Regular polygon (with one handle) instead of a star" msgstr "Polygone régulier (avec une poignée) au lieu d’une étoile" -#: ../src/widgets/toolbox.cpp:3005 +#: ../src/widgets/toolbox.cpp:3023 msgid "Star instead of a regular polygon (with one handle)" msgstr "Étoile au lieu d’un polygone régulier (avec une poignée)" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "triangle/tri-star" msgstr "triangle/étoile à trois branches" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "square/quad-star" msgstr "carré/étoile à quatre branches" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "pentagon/five-pointed star" msgstr "pentagone/étoile à cinq branches" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "hexagon/six-pointed star" msgstr "hexagone/étoile à six branches" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners" msgstr "Sommets" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners:" msgstr "Sommets :" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Number of corners of a polygon or star" msgstr "Nombre de sommets du polygone ou de l’étoile" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "thin-ray star" msgstr "étoile à branches fines" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "pentagram" msgstr "pentagramme" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "hexagram" msgstr "hexagramme" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "heptagram" msgstr "heptagramme" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "octagram" msgstr "octagramme" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "regular polygon" msgstr "polygone régulier" -#: ../src/widgets/toolbox.cpp:3045 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio" msgstr "Ratio des rayons" -#: ../src/widgets/toolbox.cpp:3045 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio:" msgstr "Ratio des rayons :" #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. #. Base radius is the same for the closest handle. -#: ../src/widgets/toolbox.cpp:3048 +#: ../src/widgets/toolbox.cpp:3066 msgid "Base radius to tip radius ratio" msgstr "Rapport du rayon intérieur sur le rayon extérieur" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "stretched" msgstr "étiré" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "twisted" msgstr "tordu" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly pinched" msgstr "légèrement pincé" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "NOT rounded" msgstr "PAS arrondi" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly rounded" msgstr "léger arrondi" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "visibly rounded" msgstr "arrondi visible" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "well rounded" msgstr "bien arrondi" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "amply rounded" msgstr "largement arrondi" -#: ../src/widgets/toolbox.cpp:3066 -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3099 msgid "blown up" msgstr "gonflé" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded" msgstr "Arrondi" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded:" msgstr "Arrondi :" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "How much rounded are the corners (0 for sharp)" msgstr "Quantité d’arrondi des sommets (0 pour pointu)" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "NOT randomized" msgstr "PAS aléatoire" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "slightly irregular" msgstr "légérement irrégulier" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "visibly randomized" msgstr "sensiblement aléatoire" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "strongly randomized" msgstr "très aléatoire" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized" msgstr "Aléatoire" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized:" msgstr "Hasard :" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Scatter randomly the corners and angles" msgstr "Disperser aléatoirement les sommets et les angles" -#: ../src/widgets/toolbox.cpp:3099 -#: ../src/widgets/toolbox.cpp:4034 -#: ../src/widgets/toolbox.cpp:4289 -#: ../src/widgets/toolbox.cpp:8586 +#: ../src/widgets/toolbox.cpp:3117 +#: ../src/widgets/toolbox.cpp:4052 +#: ../src/widgets/toolbox.cpp:4307 +#: ../src/widgets/toolbox.cpp:8604 msgid "Defaults" msgstr "R-à-z" -#: ../src/widgets/toolbox.cpp:3100 -#: ../src/widgets/toolbox.cpp:4035 +#: ../src/widgets/toolbox.cpp:3118 +#: ../src/widgets/toolbox.cpp:4053 msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Restaurer les préférences de la forme par défaut (changez les valeurs par défaut dans Inkscape Préférences>Outils)" -#: ../src/widgets/toolbox.cpp:3172 +#: ../src/widgets/toolbox.cpp:3190 msgid "Change rectangle" msgstr "Modifier un rectangle" -#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3377 msgid "W:" msgstr "L :" -#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3377 msgid "Width of rectangle" msgstr "Largeur du rectangle" -#: ../src/widgets/toolbox.cpp:3376 +#: ../src/widgets/toolbox.cpp:3394 msgid "H:" msgstr "H :" -#: ../src/widgets/toolbox.cpp:3376 +#: ../src/widgets/toolbox.cpp:3394 msgid "Height of rectangle" msgstr "Hauteur du rectangle" -#: ../src/widgets/toolbox.cpp:3390 -#: ../src/widgets/toolbox.cpp:3405 +#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3423 msgid "not rounded" msgstr "pas d’arrondi" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius" msgstr "Rayon horizontal" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Rx:" msgstr "Rx :" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius of rounded corners" msgstr "Rayon horizontal des coins arrondis" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius" msgstr "Rayon vertical" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Ry:" msgstr "Ry :" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius of rounded corners" msgstr "Rayon vertical des coins arrondis" -#: ../src/widgets/toolbox.cpp:3427 +#: ../src/widgets/toolbox.cpp:3445 msgid "Not rounded" msgstr "Pas d’arrondi" -#: ../src/widgets/toolbox.cpp:3428 +#: ../src/widgets/toolbox.cpp:3446 msgid "Make corners sharp" msgstr "Rendre les coins pointus" # ligne d'horizon ? #. TODO: use the correct axis here, too -#: ../src/widgets/toolbox.cpp:3623 +#: ../src/widgets/toolbox.cpp:3641 msgid "3D Box: Change perspective (angle of infinite axis)" msgstr "Boîte 3D: changer la perspective (angle de ligne d’horizon)" -#: ../src/widgets/toolbox.cpp:3690 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle in X direction" msgstr "Angle dans la direction X" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3692 +#: ../src/widgets/toolbox.cpp:3710 msgid "Angle of PLs in X direction" msgstr "Angle des lignes parallèles dans la direction X" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3714 +#: ../src/widgets/toolbox.cpp:3732 msgid "State of VP in X direction" msgstr "État du point de fuite dans la direction X" -#: ../src/widgets/toolbox.cpp:3715 +#: ../src/widgets/toolbox.cpp:3733 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" msgstr "Alterner le point de fuite dans la direction X entre « fini » et « infini » (=parallèles)" -#: ../src/widgets/toolbox.cpp:3730 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle in Y direction" msgstr "Angle dans la direction Y" -#: ../src/widgets/toolbox.cpp:3730 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle Y:" msgstr "Angle Y :" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3732 +#: ../src/widgets/toolbox.cpp:3750 msgid "Angle of PLs in Y direction" msgstr "Angle des lignes parallèles dans la direction Y" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3753 +#: ../src/widgets/toolbox.cpp:3771 msgid "State of VP in Y direction" msgstr "État du point de fuite dans la direction Y" -#: ../src/widgets/toolbox.cpp:3754 +#: ../src/widgets/toolbox.cpp:3772 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" msgstr "Alterner le point de fuite dans la direction Y entre « fini » et « infini » (=parallèles)" -#: ../src/widgets/toolbox.cpp:3769 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle in Z direction" msgstr "Angle dans la direction Z" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3771 +#: ../src/widgets/toolbox.cpp:3789 msgid "Angle of PLs in Z direction" msgstr "Angle des lignes parallèles dans la direction Z" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3792 +#: ../src/widgets/toolbox.cpp:3810 msgid "State of VP in Z direction" msgstr "État du point de fuite dans la direction Z" -#: ../src/widgets/toolbox.cpp:3793 +#: ../src/widgets/toolbox.cpp:3811 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" msgstr "Alterner le point de fuite dans la direction Z entre « fini » et « infini » (=parallèles)" -#: ../src/widgets/toolbox.cpp:3851 +#: ../src/widgets/toolbox.cpp:3869 msgid "Change spiral" msgstr "Modifier une spirale" -#: ../src/widgets/toolbox.cpp:3991 +#: ../src/widgets/toolbox.cpp:4009 msgid "just a curve" msgstr "juste une courbe" -#: ../src/widgets/toolbox.cpp:3991 +#: ../src/widgets/toolbox.cpp:4009 msgid "one full revolution" msgstr "une révolution complète" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of turns" msgstr "Nombre de tours" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Turns:" msgstr "Tours :" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of revolutions" msgstr "Nombre de révolutions" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "circle" msgstr "cercle" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is much denser" msgstr "le bord est beaucoup plus dense" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is denser" msgstr "le bord est plus dense" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "even" msgstr "égal" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is denser" msgstr "le centre est plus dense" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is much denser" msgstr "le centre est beaucoup plus dense" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence" msgstr "Divergence :" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence:" msgstr "Divergence :" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "Densité de la révolution; 1 = uniforme" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts from center" msgstr "démarrer du centre" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts mid-way" msgstr "démarrer du milieu" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts near edge" msgstr "démarrer près du bord" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius" msgstr "Rayon intérieur :" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius:" msgstr "Rayon intérieur :" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "Rayon de la révolution intérieure (relatif aux dimensions de la spirale)" -#: ../src/widgets/toolbox.cpp:4094 +#: ../src/widgets/toolbox.cpp:4112 msgid "Bezier" msgstr "Bézier" -#: ../src/widgets/toolbox.cpp:4095 +#: ../src/widgets/toolbox.cpp:4113 msgid "Create regular Bezier path" msgstr "Créer un chemin de Bézier régulier" -#: ../src/widgets/toolbox.cpp:4101 +#: ../src/widgets/toolbox.cpp:4119 msgid "Spiro" msgstr "Spiro" -#: ../src/widgets/toolbox.cpp:4102 +#: ../src/widgets/toolbox.cpp:4120 msgid "Create Spiro path" msgstr "Créer un chemin spirographique" -#: ../src/widgets/toolbox.cpp:4109 +#: ../src/widgets/toolbox.cpp:4127 msgid "Zigzag" msgstr "Zigzag" -#: ../src/widgets/toolbox.cpp:4110 +#: ../src/widgets/toolbox.cpp:4128 msgid "Create a sequence of straight line segments" msgstr "Créer une séquence de segments de lignes droites" -#: ../src/widgets/toolbox.cpp:4116 +#: ../src/widgets/toolbox.cpp:4134 msgid "Paraxial" msgstr "Paraxial" -#: ../src/widgets/toolbox.cpp:4117 +#: ../src/widgets/toolbox.cpp:4135 msgid "Create a sequence of paraxial line segments" msgstr "Créer une séquence de segments de lignes paraxiales" -#: ../src/widgets/toolbox.cpp:4125 +#: ../src/widgets/toolbox.cpp:4143 msgid "Mode of new lines drawn by this tool" msgstr "Mode des nouvelles lignes dessinées avec cet outil" -#: ../src/widgets/toolbox.cpp:4154 +#: ../src/widgets/toolbox.cpp:4172 msgid "Triangle in" msgstr "Triangle décroissant" -#: ../src/widgets/toolbox.cpp:4155 +#: ../src/widgets/toolbox.cpp:4173 msgid "Triangle out" msgstr "Triangle croissant" -#: ../src/widgets/toolbox.cpp:4157 +#: ../src/widgets/toolbox.cpp:4175 msgid "From clipboard" msgstr "À partir du presse-papier" -#: ../src/widgets/toolbox.cpp:4182 -#: ../src/widgets/toolbox.cpp:4183 +#: ../src/widgets/toolbox.cpp:4200 +#: ../src/widgets/toolbox.cpp:4201 msgid "Shape:" msgstr "Forme :" -#: ../src/widgets/toolbox.cpp:4182 +#: ../src/widgets/toolbox.cpp:4200 msgid "Shape of new paths drawn by this tool" msgstr "Style des nouveaux chemins dessinés avec cet outil" -#: ../src/widgets/toolbox.cpp:4266 +#: ../src/widgets/toolbox.cpp:4284 msgid "(many nodes, rough)" msgstr "(nombreux nœuds, rugueux)" #. Mean #. Rotation #. Scale -#: ../src/widgets/toolbox.cpp:4266 -#: ../src/widgets/toolbox.cpp:4374 -#: ../src/widgets/toolbox.cpp:4391 -#: ../src/widgets/toolbox.cpp:4599 -#: ../src/widgets/toolbox.cpp:4688 -#: ../src/widgets/toolbox.cpp:4704 -#: ../src/widgets/toolbox.cpp:4720 -#: ../src/widgets/toolbox.cpp:4780 -#: ../src/widgets/toolbox.cpp:4810 +#: ../src/widgets/toolbox.cpp:4284 +#: ../src/widgets/toolbox.cpp:4392 +#: ../src/widgets/toolbox.cpp:4409 +#: ../src/widgets/toolbox.cpp:4617 +#: ../src/widgets/toolbox.cpp:4706 +#: ../src/widgets/toolbox.cpp:4722 +#: ../src/widgets/toolbox.cpp:4738 +#: ../src/widgets/toolbox.cpp:4798 #: ../src/widgets/toolbox.cpp:4828 -#: ../src/widgets/toolbox.cpp:5183 -#: ../src/widgets/toolbox.cpp:5216 -#: ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:4846 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:6263 msgid "(default)" msgstr "(défaut)" -#: ../src/widgets/toolbox.cpp:4266 +#: ../src/widgets/toolbox.cpp:4284 msgid "(few nodes, smooth)" msgstr "(peu de nœuds, doux)" -#: ../src/widgets/toolbox.cpp:4269 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing:" msgstr "Lissage :" -#: ../src/widgets/toolbox.cpp:4269 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing: " msgstr "Lissage :" -#: ../src/widgets/toolbox.cpp:4270 +#: ../src/widgets/toolbox.cpp:4288 msgid "How much smoothing (simplifying) is applied to the line" msgstr "Quel niveau de lissage (simplification) est appliqué à la ligne" -#: ../src/widgets/toolbox.cpp:4290 +#: ../src/widgets/toolbox.cpp:4308 msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Restaurer les préférences du crayon par défaut (changez les valeurs par défaut dans Préférences d’Inkscape>Outils)" #. Width -#: ../src/widgets/toolbox.cpp:4374 +#: ../src/widgets/toolbox.cpp:4392 msgid "(pinch tweak)" msgstr "(ajustement serré)" -#: ../src/widgets/toolbox.cpp:4374 +#: ../src/widgets/toolbox.cpp:4392 msgid "(broad tweak)" msgstr "(ajustement large)" -#: ../src/widgets/toolbox.cpp:4377 +#: ../src/widgets/toolbox.cpp:4395 msgid "The width of the tweak area (relative to the visible canvas area)" msgstr "Largeur de la zone d’ajustement (relativement à la zone de travail visible)" #. Force -#: ../src/widgets/toolbox.cpp:4391 +#: ../src/widgets/toolbox.cpp:4409 msgid "(minimum force)" msgstr "(force minimum)" -#: ../src/widgets/toolbox.cpp:4391 +#: ../src/widgets/toolbox.cpp:4409 msgid "(maximum force)" msgstr "(force maximum)" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force" msgstr "Force" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force:" msgstr "Force :" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "The force of the tweak action" msgstr "Force de l’action d’ajustement" -#: ../src/widgets/toolbox.cpp:4412 +#: ../src/widgets/toolbox.cpp:4430 msgid "Move mode" msgstr "Mode déplacement" -#: ../src/widgets/toolbox.cpp:4413 +#: ../src/widgets/toolbox.cpp:4431 msgid "Move objects in any direction" msgstr "Déplace la sélection dans la direction du curseur" -#: ../src/widgets/toolbox.cpp:4419 +#: ../src/widgets/toolbox.cpp:4437 msgid "Move in/out mode" msgstr "Mode rapprochement/éloignement" -#: ../src/widgets/toolbox.cpp:4420 +#: ../src/widgets/toolbox.cpp:4438 msgid "Move objects towards cursor; with Shift from cursor" msgstr "Déplace l’objet vers le curseur ; avec Maj, à l’encontre du curseur" -#: ../src/widgets/toolbox.cpp:4426 +#: ../src/widgets/toolbox.cpp:4444 msgid "Move jitter mode" msgstr "Mode déplacement aléatoire" -#: ../src/widgets/toolbox.cpp:4427 +#: ../src/widgets/toolbox.cpp:4445 msgid "Move objects in random directions" msgstr "Déplace la sélection dans une direction aléatoire" -#: ../src/widgets/toolbox.cpp:4433 +#: ../src/widgets/toolbox.cpp:4451 msgid "Scale mode" msgstr "Mode redimensionnement" -#: ../src/widgets/toolbox.cpp:4434 +#: ../src/widgets/toolbox.cpp:4452 msgid "Shrink objects, with Shift enlarge" msgstr "Rétrécir les objets, avec Maj. étirer" -#: ../src/widgets/toolbox.cpp:4440 +#: ../src/widgets/toolbox.cpp:4458 msgid "Rotate mode" msgstr "Mode rotation" -#: ../src/widgets/toolbox.cpp:4441 +#: ../src/widgets/toolbox.cpp:4459 msgid "Rotate objects, with Shift counterclockwise" msgstr "Applique une rotation dans le sens horaire ; avec Maj, le sens est inversé" -#: ../src/widgets/toolbox.cpp:4447 +#: ../src/widgets/toolbox.cpp:4465 msgid "Duplicate/delete mode" msgstr "Mode duplication/suppression" -#: ../src/widgets/toolbox.cpp:4448 +#: ../src/widgets/toolbox.cpp:4466 msgid "Duplicate objects, with Shift delete" msgstr "Duplique les objets ; avec Maj, efface" -#: ../src/widgets/toolbox.cpp:4454 +#: ../src/widgets/toolbox.cpp:4472 msgid "Push mode" msgstr "Mode poussée" -#: ../src/widgets/toolbox.cpp:4455 +#: ../src/widgets/toolbox.cpp:4473 msgid "Push parts of paths in any direction" msgstr "Pousse le chemin dans le sens du curseur" -#: ../src/widgets/toolbox.cpp:4461 +#: ../src/widgets/toolbox.cpp:4479 msgid "Shrink/grow mode" msgstr "Mode rétrécissement/élargissement" -#: ../src/widgets/toolbox.cpp:4462 +#: ../src/widgets/toolbox.cpp:4480 msgid "Shrink (inset) parts of paths; with Shift grow (outset)" msgstr "Rétrécit les chemins (contraction) ; avec Maj, élargit (dilatation)" -#: ../src/widgets/toolbox.cpp:4468 +#: ../src/widgets/toolbox.cpp:4486 msgid "Attract/repel mode" msgstr "Mode attraction/répulsion" -#: ../src/widgets/toolbox.cpp:4469 +#: ../src/widgets/toolbox.cpp:4487 msgid "Attract parts of paths towards cursor; with Shift from cursor" msgstr "Attire les chemins vers le curseur ; avec Maj, éloigne les chemins du curseur" -#: ../src/widgets/toolbox.cpp:4475 +#: ../src/widgets/toolbox.cpp:4493 msgid "Roughen mode" msgstr "Mode rugueux" -#: ../src/widgets/toolbox.cpp:4476 +#: ../src/widgets/toolbox.cpp:4494 msgid "Roughen parts of paths" msgstr "Rend les chemins plus rugueux" -#: ../src/widgets/toolbox.cpp:4482 +#: ../src/widgets/toolbox.cpp:4500 msgid "Color paint mode" msgstr "Mode peinture de couleur" -#: ../src/widgets/toolbox.cpp:4483 +#: ../src/widgets/toolbox.cpp:4501 msgid "Paint the tool's color upon selected objects" msgstr "Décaler la couleur des objets vers celle de l’outil" -#: ../src/widgets/toolbox.cpp:4489 +#: ../src/widgets/toolbox.cpp:4507 msgid "Color jitter mode" msgstr "Mode perturbation des couleurs" -#: ../src/widgets/toolbox.cpp:4490 +#: ../src/widgets/toolbox.cpp:4508 msgid "Jitter the colors of selected objects" msgstr "Perturber la couleur des objets sélectionnés" -#: ../src/widgets/toolbox.cpp:4496 +#: ../src/widgets/toolbox.cpp:4514 msgid "Blur mode" msgstr "Mode flou" -#: ../src/widgets/toolbox.cpp:4497 +#: ../src/widgets/toolbox.cpp:4515 msgid "Blur selected objects more; with Shift, blur less" msgstr "Ajoute du flou à la sélection ; avec Maj, retire du flou" -#: ../src/widgets/toolbox.cpp:4524 +#: ../src/widgets/toolbox.cpp:4542 msgid "Channels:" msgstr "Canaux :" -#: ../src/widgets/toolbox.cpp:4536 +#: ../src/widgets/toolbox.cpp:4554 msgid "In color mode, act on objects' hue" msgstr "En mode couleur, agit sur la teinte des objets" #. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/toolbox.cpp:4540 +#: ../src/widgets/toolbox.cpp:4558 msgid "H" msgstr "T" -#: ../src/widgets/toolbox.cpp:4552 +#: ../src/widgets/toolbox.cpp:4570 msgid "In color mode, act on objects' saturation" msgstr "En mode couleur, agit sur la saturation des objets" # Saturation (in HSL) #. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/toolbox.cpp:4556 +#: ../src/widgets/toolbox.cpp:4574 msgid "S" msgstr "S" -#: ../src/widgets/toolbox.cpp:4568 +#: ../src/widgets/toolbox.cpp:4586 msgid "In color mode, act on objects' lightness" msgstr "En mode couleur, agit sur la luminosité des objets" # Luminosity (in HSL) #. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/toolbox.cpp:4572 +#: ../src/widgets/toolbox.cpp:4590 msgid "L" msgstr "L" -#: ../src/widgets/toolbox.cpp:4584 +#: ../src/widgets/toolbox.cpp:4602 msgid "In color mode, act on objects' opacity" msgstr "En mode couleur, agit sur l’opacité des objets" # Opacity #. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/toolbox.cpp:4588 +#: ../src/widgets/toolbox.cpp:4606 msgid "O" msgstr "O" #. Fidelity -#: ../src/widgets/toolbox.cpp:4599 +#: ../src/widgets/toolbox.cpp:4617 msgid "(rough, simplified)" msgstr "(grossier, simplifié)" -#: ../src/widgets/toolbox.cpp:4599 +#: ../src/widgets/toolbox.cpp:4617 msgid "(fine, but many nodes)" msgstr "(fin, mais avec beaucoup de nœuds)" -#: ../src/widgets/toolbox.cpp:4602 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity" msgstr "Fidélité" -#: ../src/widgets/toolbox.cpp:4602 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity:" msgstr "Fidélité:" -#: ../src/widgets/toolbox.cpp:4603 +#: ../src/widgets/toolbox.cpp:4621 msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes" msgstr "Une basse fidélité simplifie les chemins; Une haute fidélité préserve les propriétés des chemins mais peut ajouter de nombreux nœuds." -#: ../src/widgets/toolbox.cpp:4621 -#: ../src/widgets/toolbox.cpp:4799 -#: ../src/widgets/toolbox.cpp:5334 +#: ../src/widgets/toolbox.cpp:4639 +#: ../src/widgets/toolbox.cpp:4817 +#: ../src/widgets/toolbox.cpp:5352 msgid "Pressure" msgstr "Pression" -#: ../src/widgets/toolbox.cpp:4622 +#: ../src/widgets/toolbox.cpp:4640 msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "Utiliser la pression du périphérique d’entrée pour modifier la force de l’outil" #. Width -#: ../src/widgets/toolbox.cpp:4688 +#: ../src/widgets/toolbox.cpp:4706 msgid "(narrow spray)" msgstr "(pulvérisation étroite)" -#: ../src/widgets/toolbox.cpp:4688 +#: ../src/widgets/toolbox.cpp:4706 msgid "(broad spray)" msgstr "(pulvérisation large)" -#: ../src/widgets/toolbox.cpp:4691 +#: ../src/widgets/toolbox.cpp:4709 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "Largeur de la zone de pulvérisation (relativement à la zone de travail visible)" -#: ../src/widgets/toolbox.cpp:4704 +#: ../src/widgets/toolbox.cpp:4722 msgid "(maximum mean)" msgstr "(moyenne maximale)" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus" msgstr "Rayon" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus:" msgstr "Rayon :" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "0 pour pulvériser sur un seul endroit ; augmenter pour élargir le rayon de pulvérisation" #. Standard_deviation -#: ../src/widgets/toolbox.cpp:4720 +#: ../src/widgets/toolbox.cpp:4738 msgid "(minimum scatter)" msgstr "(dispersion minimale)" -#: ../src/widgets/toolbox.cpp:4720 +#: ../src/widgets/toolbox.cpp:4738 msgid "(maximum scatter)" msgstr "(dispersion maximale)" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgctxt "Spray tool" msgid "Scatter" msgstr "Éparpiller" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgctxt "Spray tool" msgid "Scatter:" msgstr "Éparpiller :" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgid "Increase to scatter sprayed objects" msgstr "Augmenter pour disperser les objets pulvérisés" -#: ../src/widgets/toolbox.cpp:4742 +#: ../src/widgets/toolbox.cpp:4760 msgid "Spray copies of the initial selection" msgstr "Pulvériser des copies de la sélection initiale" -#: ../src/widgets/toolbox.cpp:4749 +#: ../src/widgets/toolbox.cpp:4767 msgid "Spray clones of the initial selection" msgstr "Pulvériser des clones de la sélection initiale" -#: ../src/widgets/toolbox.cpp:4755 +#: ../src/widgets/toolbox.cpp:4773 msgid "Spray single path" msgstr "Pulvérisation par union des formes" -#: ../src/widgets/toolbox.cpp:4756 +#: ../src/widgets/toolbox.cpp:4774 msgid "Spray objects in a single path" msgstr "Pulvérisation fusionnée en un chemin unique" #. Population -#: ../src/widgets/toolbox.cpp:4780 +#: ../src/widgets/toolbox.cpp:4798 msgid "(low population)" msgstr "(faible population)" -#: ../src/widgets/toolbox.cpp:4780 +#: ../src/widgets/toolbox.cpp:4798 msgid "(high population)" msgstr "(forte population)" -#: ../src/widgets/toolbox.cpp:4783 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount" msgstr "Quantité" -#: ../src/widgets/toolbox.cpp:4784 +#: ../src/widgets/toolbox.cpp:4802 msgid "Adjusts the number of items sprayed per click" msgstr "Ajuste le nombre de d’éléments pulvérisés par clic" -#: ../src/widgets/toolbox.cpp:4800 +#: ../src/widgets/toolbox.cpp:4818 msgid "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "Utiliser la pression du périphérique d’entrée pour modifier la quantité d’objets pulvérisés" -#: ../src/widgets/toolbox.cpp:4810 +#: ../src/widgets/toolbox.cpp:4828 msgid "(high rotation variation)" msgstr "(variation de rotation forte)" -#: ../src/widgets/toolbox.cpp:4813 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation" msgstr "Rotation" -#: ../src/widgets/toolbox.cpp:4813 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation:" msgstr "Rotation :" -#: ../src/widgets/toolbox.cpp:4815 +#: ../src/widgets/toolbox.cpp:4833 #, no-c-format msgid "Variation of the rotation of the sprayed objects; 0% for the same rotation than the original object" msgstr "Variation de rotation des objets pulvérisés ; 0 % pour utiliser la même rotation que l’objet original" -#: ../src/widgets/toolbox.cpp:4828 +#: ../src/widgets/toolbox.cpp:4846 msgid "(high scale variation)" msgstr "(variation d’échelle forte)" -#: ../src/widgets/toolbox.cpp:4831 +#: ../src/widgets/toolbox.cpp:4849 msgctxt "Spray tool" msgid "Scale" msgstr "Échelle" -#: ../src/widgets/toolbox.cpp:4831 +#: ../src/widgets/toolbox.cpp:4849 msgctxt "Spray tool" msgid "Scale:" msgstr "Échelle :" -#: ../src/widgets/toolbox.cpp:4833 +#: ../src/widgets/toolbox.cpp:4851 #, no-c-format msgid "Variation in the scale of the sprayed objects; 0% for the same scale than the original object" msgstr "Variation de l’échelle des objets pulvérisés ; 0 % pour utiliser la même taille que l’objet original" -#: ../src/widgets/toolbox.cpp:5007 +#: ../src/widgets/toolbox.cpp:5025 msgid "No preset" msgstr "Aucune présélection" -#: ../src/widgets/toolbox.cpp:5025 +#: ../src/widgets/toolbox.cpp:5043 msgid "Save..." msgstr "Enregistrer sous..." #. Width -#: ../src/widgets/toolbox.cpp:5183 -#: ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:6263 msgid "(hairline)" msgstr "(sans épaisseur)" -#: ../src/widgets/toolbox.cpp:5183 -#: ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:6263 msgid "(broad stroke)" msgstr " (trait large)" -#: ../src/widgets/toolbox.cpp:5186 -#: ../src/widgets/toolbox.cpp:6248 +#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:6266 msgid "Pen Width" msgstr "Largeur du stylo" -#: ../src/widgets/toolbox.cpp:5187 +#: ../src/widgets/toolbox.cpp:5205 msgid "The width of the calligraphic pen (relative to the visible canvas area)" msgstr "Largeur de la plume (relativement à la zone de travail visible)" #. Thinning -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed blows up stroke)" msgstr "(la vitesse gonfle le trait)" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight widening)" msgstr "(léger élargissement)" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(constant width)" msgstr "(largeur constante)" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight thinning, default)" msgstr "(léger amincissement, défaut)" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed deflates stroke)" msgstr "(la vitesse affine le trait)" -#: ../src/widgets/toolbox.cpp:5203 +#: ../src/widgets/toolbox.cpp:5221 msgid "Stroke Thinning" msgstr "Amincissement du trait" -#: ../src/widgets/toolbox.cpp:5203 +#: ../src/widgets/toolbox.cpp:5221 msgid "Thinning:" msgstr "Amincissement :" -#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:5222 msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)" msgstr "Largeur du tracé en fonction de la vélocité. (>0 la vitesse du tracé diminue sa largeur, <0 l’augmente, 0 ne l’influence pas)" #. Angle -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(left edge up)" msgstr "(bord gauche vers le haut)" -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(horizontal)" msgstr "(horizontal)" -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(right edge up)" msgstr "(bord droit vers le haut)" -#: ../src/widgets/toolbox.cpp:5219 +#: ../src/widgets/toolbox.cpp:5237 msgid "Pen Angle" msgstr "Angle du stylo" -#: ../src/widgets/toolbox.cpp:5219 +#: ../src/widgets/toolbox.cpp:5237 #: ../share/extensions/motion.inx.h:1 #: ../share/extensions/restack.inx.h:1 msgid "Angle:" msgstr "Angle :" -#: ../src/widgets/toolbox.cpp:5220 +#: ../src/widgets/toolbox.cpp:5238 msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)" msgstr "Angle de la plume (en degrés; 0 = horizontal; n’a pas d’effet si orientation = 0)" #. Fixation -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(perpendicular to stroke, \"brush\")" msgstr "(perpendiculaire au tracé, « pinceau »)" -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(almost fixed, default)" msgstr "(presque fixe, valeur par défaut)" -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(fixed by Angle, \"pen\")" msgstr "(fixé par un angle, « stylo »)" -#: ../src/widgets/toolbox.cpp:5237 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation" msgstr "Fixité" -#: ../src/widgets/toolbox.cpp:5237 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation:" msgstr "Fixité :" -#: ../src/widgets/toolbox.cpp:5238 +#: ../src/widgets/toolbox.cpp:5256 msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)" msgstr "Comportement de l’angle de la plume (0 = toujours perpendiculaire à la direction du tracé, 100 = invariant)" #. Cap Rounding -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(blunt caps, default)" msgstr "(terminaisons planes, défaut)" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(slightly bulging)" msgstr "(légèrement bombées)" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(approximately round)" msgstr "(approximativement arrondies)" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(long protruding caps)" msgstr "(terminaisons très proéminentes)" -#: ../src/widgets/toolbox.cpp:5254 +#: ../src/widgets/toolbox.cpp:5272 msgid "Cap rounding" msgstr "Arrondi de la terminaison" -#: ../src/widgets/toolbox.cpp:5254 +#: ../src/widgets/toolbox.cpp:5272 msgid "Caps:" msgstr "Terminaisons :" -#: ../src/widgets/toolbox.cpp:5255 +#: ../src/widgets/toolbox.cpp:5273 msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)" msgstr "Augmenter ce paramètre pour que les extrémités du tracé soient plus proéminentes (0 = pas de terminaison, 1 = terminaison arrondie)" #. Tremor -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(smooth line)" msgstr "(ligne douce)" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(slight tremor)" msgstr "(léger tremblement)" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(noticeable tremor)" msgstr "(tremblement sensible)" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(maximum tremor)" msgstr "(tremblement maximum)" -#: ../src/widgets/toolbox.cpp:5270 +#: ../src/widgets/toolbox.cpp:5288 msgid "Stroke Tremor" msgstr "Appliquer un tremblement au contour" -#: ../src/widgets/toolbox.cpp:5270 +#: ../src/widgets/toolbox.cpp:5288 msgid "Tremor:" msgstr "Tremblement :" -#: ../src/widgets/toolbox.cpp:5271 +#: ../src/widgets/toolbox.cpp:5289 msgid "Increase to make strokes rugged and trembling" msgstr "Augmenter ce paramètre pour rendre la plume tremblante et irrégulière" #. Wiggle -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(no wiggle)" msgstr "(pas d’agitation)" -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(slight deviation)" msgstr "(légères déviations)" -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(wild waves and curls)" msgstr "(grandes vagues et boucles)" -#: ../src/widgets/toolbox.cpp:5288 +#: ../src/widgets/toolbox.cpp:5306 msgid "Pen Wiggle" msgstr "Agitation du stylo" -#: ../src/widgets/toolbox.cpp:5288 +#: ../src/widgets/toolbox.cpp:5306 msgid "Wiggle:" msgstr "Agitation :" -#: ../src/widgets/toolbox.cpp:5289 +#: ../src/widgets/toolbox.cpp:5307 msgid "Increase to make the pen waver and wiggle" msgstr "Augmenter ce paramètre pour rendre la plume hésitante et agitée" #. Mass -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(no inertia)" msgstr "(aucune inertie)" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(slight smoothing, default)" msgstr "(lissage léger, valeur par défaut)" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(noticeable lagging)" msgstr "(retard sensible)" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(maximum inertia)" msgstr "(inertie maximum)" -#: ../src/widgets/toolbox.cpp:5305 +#: ../src/widgets/toolbox.cpp:5323 msgid "Pen Mass" msgstr "Inertie du stylo" -#: ../src/widgets/toolbox.cpp:5305 +#: ../src/widgets/toolbox.cpp:5323 msgid "Mass:" msgstr "Inertie :" -#: ../src/widgets/toolbox.cpp:5306 +#: ../src/widgets/toolbox.cpp:5324 msgid "Increase to make the pen drag behind, as if slowed by inertia" msgstr "Augmenter ce paramètre pour que la plume traîne, ralentie par son inertie" -#: ../src/widgets/toolbox.cpp:5321 +#: ../src/widgets/toolbox.cpp:5339 msgid "Trace Background" msgstr "Tracer selon le fond" -#: ../src/widgets/toolbox.cpp:5322 +#: ../src/widgets/toolbox.cpp:5340 msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)" msgstr "Imiter la luminosité de l’arrière-plan avec l’épaisseur du trait (blanc - trait fin, noir - trait épais)" -#: ../src/widgets/toolbox.cpp:5335 +#: ../src/widgets/toolbox.cpp:5353 msgid "Use the pressure of the input device to alter the width of the pen" msgstr "Utiliser la pression du périphérique d’entrée pour modifier la largeur de la plume" -#: ../src/widgets/toolbox.cpp:5347 +#: ../src/widgets/toolbox.cpp:5365 msgid "Tilt" msgstr "Inclinaison" -#: ../src/widgets/toolbox.cpp:5348 +#: ../src/widgets/toolbox.cpp:5366 msgid "Use the tilt of the input device to alter the angle of the pen's nib" msgstr "Utiliser l’inclinaison du périphérique d’entrée pour modifier l’angle de la plume" -#: ../src/widgets/toolbox.cpp:5363 +#: ../src/widgets/toolbox.cpp:5381 msgid "Choose a preset" msgstr "Aucune présélection" -#: ../src/widgets/toolbox.cpp:5452 +#: ../src/widgets/toolbox.cpp:5470 msgid "Arc: Change start/end" msgstr "Arc : déplacer début/fin" -#: ../src/widgets/toolbox.cpp:5518 +#: ../src/widgets/toolbox.cpp:5536 msgid "Arc: Change open/closed" msgstr "Arc : modifier ouvert/fermé" -#: ../src/widgets/toolbox.cpp:5645 +#: ../src/widgets/toolbox.cpp:5663 msgid "Start:" msgstr "Début :" -#: ../src/widgets/toolbox.cpp:5646 +#: ../src/widgets/toolbox.cpp:5664 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "Angle (en degrés) entre l’horizontale et le début de l’arc" -#: ../src/widgets/toolbox.cpp:5658 +#: ../src/widgets/toolbox.cpp:5676 msgid "End:" msgstr "Fin :" -#: ../src/widgets/toolbox.cpp:5659 +#: ../src/widgets/toolbox.cpp:5677 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "Angle (en degrés) entre l’horizontale et la fin de l’arc" -#: ../src/widgets/toolbox.cpp:5675 +#: ../src/widgets/toolbox.cpp:5693 msgid "Closed arc" msgstr "Arc fermé" -#: ../src/widgets/toolbox.cpp:5676 +#: ../src/widgets/toolbox.cpp:5694 msgid "Switch to segment (closed shape with two radii)" msgstr "Tracer un camembert (forme fermée entre deux rayons)" -#: ../src/widgets/toolbox.cpp:5682 +#: ../src/widgets/toolbox.cpp:5700 msgid "Open Arc" msgstr "Arc ouvert" -#: ../src/widgets/toolbox.cpp:5683 +#: ../src/widgets/toolbox.cpp:5701 msgid "Switch to arc (unclosed shape)" msgstr "Tracer un arc (courbe non fermée)" -#: ../src/widgets/toolbox.cpp:5706 +#: ../src/widgets/toolbox.cpp:5724 msgid "Make whole" msgstr "Refermer" -#: ../src/widgets/toolbox.cpp:5707 +#: ../src/widgets/toolbox.cpp:5725 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Transformer en ellipse pleine (pas un arc ou un camembert)" -#: ../src/widgets/toolbox.cpp:5785 +#: ../src/widgets/toolbox.cpp:5803 msgid "Pick opacity" msgstr "Capturer l’opacité" -#: ../src/widgets/toolbox.cpp:5786 +#: ../src/widgets/toolbox.cpp:5804 msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha" msgstr "Capturer à la fois la couleur et l’alpha (opacité) sous le curseur; Sinon, ne capturer que la couleur visible prémultipliée par l’alpha" -#: ../src/widgets/toolbox.cpp:5789 +#: ../src/widgets/toolbox.cpp:5807 msgid "Pick" msgstr "Capturer" -#: ../src/widgets/toolbox.cpp:5798 +#: ../src/widgets/toolbox.cpp:5816 msgid "Assign opacity" msgstr "Appliquer l’opacité" -#: ../src/widgets/toolbox.cpp:5799 +#: ../src/widgets/toolbox.cpp:5817 msgid "If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "Si l’alpha a été capturé, l’appliquer comme transparence de remplissage ou de contour à la sélection" -#: ../src/widgets/toolbox.cpp:5802 +#: ../src/widgets/toolbox.cpp:5820 msgid "Assign" msgstr "Appliquer" -#: ../src/widgets/toolbox.cpp:5987 +#: ../src/widgets/toolbox.cpp:6005 msgid "Closed" msgstr "Fermé" -#: ../src/widgets/toolbox.cpp:5989 +#: ../src/widgets/toolbox.cpp:6007 msgid "Open start" msgstr "Début ouvert" -#: ../src/widgets/toolbox.cpp:5991 +#: ../src/widgets/toolbox.cpp:6009 msgid "Open end" msgstr "Fin ouverte" -#: ../src/widgets/toolbox.cpp:5993 +#: ../src/widgets/toolbox.cpp:6011 msgid "Open both" msgstr "Les deux ouverts" -#: ../src/widgets/toolbox.cpp:6052 +#: ../src/widgets/toolbox.cpp:6070 msgid "All inactive" msgstr "Tout inactif" -#: ../src/widgets/toolbox.cpp:6053 +#: ../src/widgets/toolbox.cpp:6071 msgid "No geometric tool is active" msgstr "Aucun outil géométrique n’est actif" -#: ../src/widgets/toolbox.cpp:6086 +#: ../src/widgets/toolbox.cpp:6104 msgid "Show limiting bounding box" msgstr "Montrer la boîte englobante limite" -#: ../src/widgets/toolbox.cpp:6087 +#: ../src/widgets/toolbox.cpp:6105 msgid "Show bounding box (used to cut infinite lines)" msgstr "Affiche la boîte englobante (utilisé pour couper les lignes infinies)" -#: ../src/widgets/toolbox.cpp:6098 +#: ../src/widgets/toolbox.cpp:6116 msgid "Get limiting bounding box from selection" msgstr "Obtenir la boîte englobante limite à partir de la sélection" -#: ../src/widgets/toolbox.cpp:6099 +#: ../src/widgets/toolbox.cpp:6117 msgid "Set limiting bounding box (used to cut infinite lines) to the bounding box of current selection" msgstr "Définir la boîte englobante limite (utilisée pour couper les lignes infinies) à la boîte englobante de la sélection" -#: ../src/widgets/toolbox.cpp:6111 +#: ../src/widgets/toolbox.cpp:6129 msgid "Choose a line segment type" msgstr "Sélectionner un type de segment" -#: ../src/widgets/toolbox.cpp:6127 +#: ../src/widgets/toolbox.cpp:6145 msgid "Display measuring info" msgstr "Afficher les informations de mesure" -#: ../src/widgets/toolbox.cpp:6128 +#: ../src/widgets/toolbox.cpp:6146 msgid "Display measuring info for selected items" msgstr "Affiche les informations de mesure pour la sélection" -#: ../src/widgets/toolbox.cpp:6148 +#: ../src/widgets/toolbox.cpp:6166 msgid "Open LPE dialog" msgstr "Ouvrir la boîte de dialogue des effets de chemin" -#: ../src/widgets/toolbox.cpp:6149 +#: ../src/widgets/toolbox.cpp:6167 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "Ouvrir la boîte de dialogue des effets de chemin (pour adapter les paramètres numériquement)" -#: ../src/widgets/toolbox.cpp:6214 +#: ../src/widgets/toolbox.cpp:6232 msgid "Delete objects touched by the eraser" msgstr "Effacer les objets en contact avec la gomme" -#: ../src/widgets/toolbox.cpp:6220 +#: ../src/widgets/toolbox.cpp:6238 msgid "Cut" msgstr "Couper" -#: ../src/widgets/toolbox.cpp:6221 +#: ../src/widgets/toolbox.cpp:6239 msgid "Cut out from objects" msgstr "Effacer une partie d’objet" -#: ../src/widgets/toolbox.cpp:6249 +#: ../src/widgets/toolbox.cpp:6267 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "Largeur de la gomme (relativement à la zone de travail visible)" -#: ../src/widgets/toolbox.cpp:6489 +#: ../src/widgets/toolbox.cpp:6507 msgid "Text: Change font family" msgstr "Texte : modifier la police" -#: ../src/widgets/toolbox.cpp:6546 +#: ../src/widgets/toolbox.cpp:6564 msgid "Text: Change font size" msgstr "Texte : modifier la taille de police" -#: ../src/widgets/toolbox.cpp:6685 +#: ../src/widgets/toolbox.cpp:6703 msgid "Text: Change font style" msgstr "Texte : modifier le style de la police" -#: ../src/widgets/toolbox.cpp:6764 +#: ../src/widgets/toolbox.cpp:6782 msgid "Text: Change superscript or subscript" msgstr "Texte : passe en exposant ou en indice" -#: ../src/widgets/toolbox.cpp:6910 +#: ../src/widgets/toolbox.cpp:6928 msgid "Text: Change alignment" msgstr "Texte : modifier l’alignement" -#: ../src/widgets/toolbox.cpp:6953 +#: ../src/widgets/toolbox.cpp:6971 msgid "Text: Change line-height" msgstr "Texte : modifier la hauteur de ligne" -#: ../src/widgets/toolbox.cpp:7002 +#: ../src/widgets/toolbox.cpp:7020 msgid "Text: Change word-spacing" msgstr "Texte : modifier l’espacement intermot" -#: ../src/widgets/toolbox.cpp:7044 +#: ../src/widgets/toolbox.cpp:7062 msgid "Text: Change letter-spacing" msgstr "Texte : modifier l’interlettrage" -#: ../src/widgets/toolbox.cpp:7085 +#: ../src/widgets/toolbox.cpp:7103 msgid "Text: Change dx (kern)" msgstr "Texte : modifier dx (crénage)" -#: ../src/widgets/toolbox.cpp:7119 +#: ../src/widgets/toolbox.cpp:7137 msgid "Text: Change dy" msgstr "Texte : modifier dy" -#: ../src/widgets/toolbox.cpp:7154 +#: ../src/widgets/toolbox.cpp:7172 msgid "Text: Change rotate" msgstr "Texte : modifier la rotation" -#: ../src/widgets/toolbox.cpp:7202 +#: ../src/widgets/toolbox.cpp:7220 msgid "Text: Change orientation" msgstr "Texte : modifier l’orientation" -#: ../src/widgets/toolbox.cpp:7567 +#: ../src/widgets/toolbox.cpp:7585 msgid "Font Family" msgstr "Famille de police" -#: ../src/widgets/toolbox.cpp:7568 +#: ../src/widgets/toolbox.cpp:7586 msgid "Select Font Family (Alt-X to access)" msgstr "Sélectionner une famille de police (Alt+X pour y accéder)" @@ -23243,358 +23308,358 @@ msgstr "Sélectionner une famille de police (Alt+X pour y accéder)" #. Extra list width #. Cell layout #. Enable entry completion -#: ../src/widgets/toolbox.cpp:7575 +#: ../src/widgets/toolbox.cpp:7593 msgid "Font not found on system" msgstr "Police indisponible sur votre système" -#: ../src/widgets/toolbox.cpp:7608 +#: ../src/widgets/toolbox.cpp:7626 msgid "Font size (px)" msgstr "Taille de police (px)" #. Name -#: ../src/widgets/toolbox.cpp:7620 +#: ../src/widgets/toolbox.cpp:7638 msgid "Toggle Bold" msgstr "Inverser la graisse" #. Label -#: ../src/widgets/toolbox.cpp:7621 +#: ../src/widgets/toolbox.cpp:7639 msgid "Toggle bold or normal weight" msgstr "Basculer entre gras et normal" #. Name -#: ../src/widgets/toolbox.cpp:7633 +#: ../src/widgets/toolbox.cpp:7651 msgid "Toggle Italic/Oblique" msgstr "Inverser Italique/Oblique" #. Label -#: ../src/widgets/toolbox.cpp:7634 +#: ../src/widgets/toolbox.cpp:7652 msgid "Toggle italic/oblique style" msgstr "Basculer le style entre Italique/Oblique et normal" #. Name -#: ../src/widgets/toolbox.cpp:7646 +#: ../src/widgets/toolbox.cpp:7664 msgid "Toggle Superscript" msgstr "Inverser le mode exposant" #. Label -#: ../src/widgets/toolbox.cpp:7647 +#: ../src/widgets/toolbox.cpp:7665 msgid "Toggle superscript" msgstr "Inverser le mode exposant" #. Name -#: ../src/widgets/toolbox.cpp:7659 +#: ../src/widgets/toolbox.cpp:7677 msgid "Toggle Subscript" msgstr "Inverser le mode indice" #. Label -#: ../src/widgets/toolbox.cpp:7660 +#: ../src/widgets/toolbox.cpp:7678 msgid "Toggle subscript" msgstr "Inverser le mode indice" -#: ../src/widgets/toolbox.cpp:7677 -#: ../src/widgets/toolbox.cpp:7678 +#: ../src/widgets/toolbox.cpp:7695 +#: ../src/widgets/toolbox.cpp:7696 msgid "Align left" msgstr "Aligner à gauche" -#: ../src/widgets/toolbox.cpp:7685 -#: ../src/widgets/toolbox.cpp:7686 +#: ../src/widgets/toolbox.cpp:7703 +#: ../src/widgets/toolbox.cpp:7704 msgid "Align center" msgstr "Centrer" -#: ../src/widgets/toolbox.cpp:7693 -#: ../src/widgets/toolbox.cpp:7694 +#: ../src/widgets/toolbox.cpp:7711 +#: ../src/widgets/toolbox.cpp:7712 msgid "Align right" msgstr "Aligner à droite" -#: ../src/widgets/toolbox.cpp:7701 +#: ../src/widgets/toolbox.cpp:7719 msgid "Justify" msgstr "Justifier" -#: ../src/widgets/toolbox.cpp:7702 +#: ../src/widgets/toolbox.cpp:7720 msgid "Justify (only flowed text)" msgstr "Justifier (texte encadré seulement)" #. Name -#: ../src/widgets/toolbox.cpp:7708 +#: ../src/widgets/toolbox.cpp:7726 msgid "Alignment" msgstr "Alignement" #. Label -#: ../src/widgets/toolbox.cpp:7709 +#: ../src/widgets/toolbox.cpp:7727 msgid "Text alignment" msgstr "Alignement du texte" -#: ../src/widgets/toolbox.cpp:7736 +#: ../src/widgets/toolbox.cpp:7754 msgid "Horizontal" msgstr "Horizontal" -#: ../src/widgets/toolbox.cpp:7743 +#: ../src/widgets/toolbox.cpp:7761 msgid "Vertical" msgstr "Vertical" #. Label -#: ../src/widgets/toolbox.cpp:7750 +#: ../src/widgets/toolbox.cpp:7768 msgid "Text orientation" msgstr "Orientation du texte" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7773 +#: ../src/widgets/toolbox.cpp:7791 msgid "Smaller spacing" msgstr "Espacement plus faible" -#: ../src/widgets/toolbox.cpp:7773 -#: ../src/widgets/toolbox.cpp:7804 -#: ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7791 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgctxt "Text tool" msgid "Normal" msgstr "Normal" -#: ../src/widgets/toolbox.cpp:7773 +#: ../src/widgets/toolbox.cpp:7791 msgid "Larger spacing" msgstr "Espacement plus important" #. name -#: ../src/widgets/toolbox.cpp:7778 +#: ../src/widgets/toolbox.cpp:7796 msgid "Line Height" msgstr "Hauteur de ligne" #. label -#: ../src/widgets/toolbox.cpp:7779 +#: ../src/widgets/toolbox.cpp:7797 msgid "Line:" msgstr "Ligne :" #. short label -#: ../src/widgets/toolbox.cpp:7780 +#: ../src/widgets/toolbox.cpp:7798 msgid "Spacing between lines (times font size)" msgstr "Espacement entre les lignes (nombre de fois la taille de la police)" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7804 -#: ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgid "Negative spacing" msgstr "Espacement négatif" -#: ../src/widgets/toolbox.cpp:7804 -#: ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgid "Positive spacing" msgstr "Espacement positif" #. name -#: ../src/widgets/toolbox.cpp:7809 +#: ../src/widgets/toolbox.cpp:7827 msgid "Word spacing" msgstr "Espacement intermot" #. label -#: ../src/widgets/toolbox.cpp:7810 +#: ../src/widgets/toolbox.cpp:7828 msgid "Word:" msgstr "Mot :" #. short label -#: ../src/widgets/toolbox.cpp:7811 +#: ../src/widgets/toolbox.cpp:7829 msgid "Spacing between words (px)" msgstr "Espacement entre les mots (px)" #. name -#: ../src/widgets/toolbox.cpp:7840 +#: ../src/widgets/toolbox.cpp:7858 msgid "Letter spacing" msgstr "Interlettrage" #. label -#: ../src/widgets/toolbox.cpp:7841 +#: ../src/widgets/toolbox.cpp:7859 msgid "Letter:" msgstr "Lettre :" #. short label -#: ../src/widgets/toolbox.cpp:7842 +#: ../src/widgets/toolbox.cpp:7860 msgid "Spacing between letters (px)" msgstr "Espacement entre les lettres (px)" #. name -#: ../src/widgets/toolbox.cpp:7871 +#: ../src/widgets/toolbox.cpp:7889 msgid "Kerning" msgstr "Crénage" #. label -#: ../src/widgets/toolbox.cpp:7872 +#: ../src/widgets/toolbox.cpp:7890 msgid "Kern:" msgstr "Crénage :" #. short label -#: ../src/widgets/toolbox.cpp:7873 +#: ../src/widgets/toolbox.cpp:7891 msgid "Horizontal kerning (px)" msgstr "Crénage horizontal (px)" #. name -#: ../src/widgets/toolbox.cpp:7902 +#: ../src/widgets/toolbox.cpp:7920 msgid "Vertical Shift" msgstr "Décalage vertical" #. label -#: ../src/widgets/toolbox.cpp:7903 +#: ../src/widgets/toolbox.cpp:7921 msgid "Vert:" msgstr "Vertical :" #. short label -#: ../src/widgets/toolbox.cpp:7904 +#: ../src/widgets/toolbox.cpp:7922 msgid "Vertical shift (px)" msgstr "Décalage vertical (px)" #. name -#: ../src/widgets/toolbox.cpp:7933 +#: ../src/widgets/toolbox.cpp:7951 msgid "Letter rotation" msgstr "Rotation des caractères" #. label -#: ../src/widgets/toolbox.cpp:7934 +#: ../src/widgets/toolbox.cpp:7952 msgid "Rot:" msgstr "Rotation :" #. short label -#: ../src/widgets/toolbox.cpp:7935 +#: ../src/widgets/toolbox.cpp:7953 msgid "Character rotation (degrees)" msgstr "Rotation des caractères (degrés)" -#: ../src/widgets/toolbox.cpp:8050 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: orthogonal" msgstr "Type de connecteur : orthogonal" -#: ../src/widgets/toolbox.cpp:8050 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: polyline" msgstr "Type de connecteur : polyligne" -#: ../src/widgets/toolbox.cpp:8099 +#: ../src/widgets/toolbox.cpp:8117 msgid "Change connector curvature" msgstr "Modifier la courbure du connecteur" -#: ../src/widgets/toolbox.cpp:8150 +#: ../src/widgets/toolbox.cpp:8168 msgid "Change connector spacing" msgstr "Modifier la marge des connecteurs" -#: ../src/widgets/toolbox.cpp:8264 +#: ../src/widgets/toolbox.cpp:8282 msgid "EditMode" msgstr "ModeÉdition" -#: ../src/widgets/toolbox.cpp:8265 +#: ../src/widgets/toolbox.cpp:8283 msgid "Switch between connection point editing and connector drawing mode" msgstr "Alterner entre le mode Édition de point de connexion et le mode Tracé de connecteur" -#: ../src/widgets/toolbox.cpp:8279 +#: ../src/widgets/toolbox.cpp:8297 msgid "Avoid" msgstr "Éviter" -#: ../src/widgets/toolbox.cpp:8289 +#: ../src/widgets/toolbox.cpp:8307 msgid "Ignore" msgstr "Ignorer" -#: ../src/widgets/toolbox.cpp:8300 +#: ../src/widgets/toolbox.cpp:8318 msgid "Orthogonal" msgstr "Othogonal" -#: ../src/widgets/toolbox.cpp:8301 +#: ../src/widgets/toolbox.cpp:8319 msgid "Make connector orthogonal or polyline" msgstr "Rend les connecteurs orthogonaux ou polylignes" -#: ../src/widgets/toolbox.cpp:8315 +#: ../src/widgets/toolbox.cpp:8333 msgid "Connector Curvature" msgstr "Courbure du connecteur" -#: ../src/widgets/toolbox.cpp:8315 +#: ../src/widgets/toolbox.cpp:8333 msgid "Curvature:" msgstr "Courbure :" -#: ../src/widgets/toolbox.cpp:8316 +#: ../src/widgets/toolbox.cpp:8334 msgid "The amount of connectors curvature" msgstr "Quantité de courbure des connecteurs" -#: ../src/widgets/toolbox.cpp:8326 +#: ../src/widgets/toolbox.cpp:8344 msgid "Connector Spacing" msgstr "Espacement des connecteurs" -#: ../src/widgets/toolbox.cpp:8326 +#: ../src/widgets/toolbox.cpp:8344 msgid "Spacing:" msgstr "Espacement :" -#: ../src/widgets/toolbox.cpp:8327 +#: ../src/widgets/toolbox.cpp:8345 msgid "The amount of space left around objects by auto-routing connectors" msgstr "Espace laissé autour des objets par les connecteurs routés automatiquement" -#: ../src/widgets/toolbox.cpp:8338 +#: ../src/widgets/toolbox.cpp:8356 msgid "Graph" msgstr "Graphe" -#: ../src/widgets/toolbox.cpp:8348 +#: ../src/widgets/toolbox.cpp:8366 msgid "Connector Length" msgstr "Longueur des connecteurs" -#: ../src/widgets/toolbox.cpp:8349 +#: ../src/widgets/toolbox.cpp:8367 msgid "Ideal length for connectors when layout is applied" msgstr "Longueur idéale pour les connecteurs après routage" -#: ../src/widgets/toolbox.cpp:8361 +#: ../src/widgets/toolbox.cpp:8379 msgid "Downwards" msgstr "Vers le bas" -#: ../src/widgets/toolbox.cpp:8362 +#: ../src/widgets/toolbox.cpp:8380 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "Faire que les connecteurs avec des marqueurs de fin (des flèches) pointent vers le bas" -#: ../src/widgets/toolbox.cpp:8378 +#: ../src/widgets/toolbox.cpp:8396 msgid "Do not allow overlapping shapes" msgstr "Ne pas permettre que deux formes se chevauchent" -#: ../src/widgets/toolbox.cpp:8393 +#: ../src/widgets/toolbox.cpp:8411 msgid "New connection point" msgstr "Nouveau point de connexion" -#: ../src/widgets/toolbox.cpp:8394 +#: ../src/widgets/toolbox.cpp:8412 msgid "Add a new connection point to the currently selected item" msgstr "Ajoute un nouveau point de connexion à l’élément sélectionné" -#: ../src/widgets/toolbox.cpp:8405 +#: ../src/widgets/toolbox.cpp:8423 msgid "Remove connection point" msgstr "Supprimer le point de connexion" -#: ../src/widgets/toolbox.cpp:8406 +#: ../src/widgets/toolbox.cpp:8424 msgid "Remove the currently selected connection point" msgstr "Supprime le point de connexion sélectionné" -#: ../src/widgets/toolbox.cpp:8508 +#: ../src/widgets/toolbox.cpp:8526 msgid "Fill by" msgstr "Type de remplissage" -#: ../src/widgets/toolbox.cpp:8509 +#: ../src/widgets/toolbox.cpp:8527 msgid "Fill by:" msgstr "Type de remplissage :" -#: ../src/widgets/toolbox.cpp:8521 +#: ../src/widgets/toolbox.cpp:8539 msgid "Fill Threshold" msgstr "Seuil de remplissage :" -#: ../src/widgets/toolbox.cpp:8522 +#: ../src/widgets/toolbox.cpp:8540 msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill" msgstr "La différence maximale entre le pixel du clic et les pixels voisins pour qu’ils soient ajoutés dans le remplissage" -#: ../src/widgets/toolbox.cpp:8548 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by" msgstr "Agrandir/rétrécir de" -#: ../src/widgets/toolbox.cpp:8548 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by:" msgstr "Agrandir/rétrécir de :" -#: ../src/widgets/toolbox.cpp:8549 +#: ../src/widgets/toolbox.cpp:8567 msgid "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "Agrandit (si positif) ou rétrécit (si négatif) de cette quantité le chemin créé par remplissage." -#: ../src/widgets/toolbox.cpp:8574 +#: ../src/widgets/toolbox.cpp:8592 msgid "Close gaps" msgstr "Combler les vides" -#: ../src/widgets/toolbox.cpp:8575 +#: ../src/widgets/toolbox.cpp:8593 msgid "Close gaps:" msgstr "Combler les vides :" -#: ../src/widgets/toolbox.cpp:8587 +#: ../src/widgets/toolbox.cpp:8605 msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Restaurer les préférences par défaut de l’outil de remplissage au seau (changez les valeurs par défaut dans Inkscape Préférences>Outils)" @@ -24512,441 +24577,649 @@ msgstr "Nombre de dents :" msgid "Pressure angle (degrees):" msgstr "Angle d’appui :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:1 -#: ../share/extensions/gcodetools_area.inx.h:1 -msgid "\"Create area offset\": creates several Inkscape path offsets to fill original path's area up to \"Area radius\" value. Outlines start from \"1/2 D\" up to \"Area width\" total width with \"D\" steps where D is taken from the nearest tool definition (\"Tool diameter\" value). Only one offset will be created if the \"Area width\" is equal to \"1/2 D\"." +#: ../share/extensions/gcodetools_about.inx.h:1 +msgid "About" +msgstr "À propos" + +#: ../share/extensions/gcodetools_about.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Gcodetools" +msgstr "Programmation de commande numérique" + +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +#: ../share/extensions/gcodetools_tools_library.inx.h:2 +msgid "Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. Tutorials, manuals and support can be found at English support forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:2 -#: ../share/extensions/gcodetools_orientation_points.inx.h:1 -msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +#: ../share/extensions/gcodetools_about.inx.h:4 +msgid "Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program. It can be use with a lot of machone types: Mills Lathes Laser and Palsma cutters and engravers Mill engravers Plotters etc. To get more info visit developers page at http://www.cnc-club.ru/gcodetools" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:3 -#: ../share/extensions/gcodetools_orientation_points.inx.h:2 -msgid "3-points mode (move, rotate and mirror, different X/Y scale)" +#: ../share/extensions/gcodetools_area.inx.h:1 +msgid "\"Create area offset\": creates several Inkscape path offsets to fill original path's area up to \"Area radius\" value. Outlines start from \"1/2 D\" up to \"Area width\" total width with \"D\" steps where D is taken from the nearest tool definition (\"Tool diameter\" value). Only one offset will be created if the \"Area width\" is equal to \"1/2 D\"." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:4 #: ../share/extensions/gcodetools_area.inx.h:2 msgid "Action:" msgstr "Action :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:5 #: ../share/extensions/gcodetools_area.inx.h:3 #: ../share/extensions/gcodetools_dxf_points.inx.h:1 -#: ../share/extensions/gcodetools_engraving.inx.h:1 +#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_graffiti.inx.h:3 #: ../share/extensions/gcodetools_lathe.inx.h:1 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 msgid "Add numeric suffix to filename" msgstr "Ajouter un suffixe numérique au nom de fichier" -#: ../share/extensions/gcodetools_all_in_one.inx.h:6 #: ../share/extensions/gcodetools_area.inx.h:4 #: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_engraving.inx.h:3 +#: ../share/extensions/gcodetools_graffiti.inx.h:4 #: ../share/extensions/gcodetools_lathe.inx.h:2 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 msgid "Additional post-processor:" msgstr "Pré-processeur supplémentaire :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:7 -msgid "All in one" -msgstr "Tout en un" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:8 #: ../share/extensions/gcodetools_area.inx.h:5 msgid "Area" msgstr "Aire" -#: ../share/extensions/gcodetools_all_in_one.inx.h:9 #: ../share/extensions/gcodetools_area.inx.h:6 -msgid "Area artefacts" +msgid "Area artifacts" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:10 #: ../share/extensions/gcodetools_area.inx.h:7 -#, fuzzy -msgid "Area width:" -msgstr "Définir la largeur :" +msgid "Area fill anlge" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:11 #: ../share/extensions/gcodetools_area.inx.h:8 -msgid "Artefact diameter:" +msgid "Area fill shift" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:12 #: ../share/extensions/gcodetools_area.inx.h:9 +msgid "Area tool overlap (0..0.9):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:10 +#, fuzzy +msgid "Area width:" +msgstr "Définir la largeur :" + +#: ../share/extensions/gcodetools_area.inx.h:11 +#, fuzzy +msgid "Artifact diameter:" +msgstr "Coller le paramètre du chemin" + +#: ../share/extensions/gcodetools_area.inx.h:12 #: ../share/extensions/gcodetools_lathe.inx.h:3 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 -msgid "Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance." +msgid "Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:13 -#: ../share/extensions/gcodetools_area.inx.h:10 +#: ../share/extensions/gcodetools_area.inx.h:13 #: ../share/extensions/gcodetools_lathe.inx.h:4 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 #, fuzzy msgid "Biarc interpolation tolerance:" msgstr "Étapes d’interpolation :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:14 +#: ../share/extensions/gcodetools_area.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:4 +#: ../share/extensions/gcodetools_graffiti.inx.h:5 +#: ../share/extensions/gcodetools_lathe.inx.h:5 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 +msgid "Comment Gcode:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:7 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +#, fuzzy +msgid "Cutting order" +msgstr "Contour en arête" + +#: ../share/extensions/gcodetools_area.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:8 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +#, fuzzy +msgid "Depth function:" +msgstr "Fonction pour le rouge :" + +#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_engraving.inx.h:5 +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +#: ../share/extensions/gcodetools_lathe.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 +msgid "Directory:" +msgstr "Dossier :" + +#: ../share/extensions/gcodetools_area.inx.h:18 +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_lathe.inx.h:10 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Fast pre-penetrate" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_lathe.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "File:" +msgstr "Fichier :" + +#: ../share/extensions/gcodetools_area.inx.h:20 +#, fuzzy +msgid "Fill area" +msgstr "Remplissage d’une zone bornée" + +#: ../share/extensions/gcodetools_area.inx.h:21 +#, fuzzy +msgid "Filling method" +msgstr "Méthode de division :" + +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +msgid "Flip y axis and parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +msgid "Full path to log file:" +msgstr "Chemin du fichier journal :" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +msgid "Generate log file" +msgstr "Générer un fichier journal" + +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Get additional comments from object's properties" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:29 +msgid "Maximum area cutting curves:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +#, fuzzy +msgid "Maximum splitting depth:" +msgstr "Simplification des chemins :" + +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +msgid "Minimum arc radius:" +msgstr "Rayon d'arc minimum :" + +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +msgid "Offset along Z axis:" +msgstr "Décalage sur l'axe Z :" + +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +#, fuzzy +msgid "Parameterize Gcode" +msgstr "Paramètres" + +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Pass by Pass" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +#, fuzzy +msgid "Path by path" +msgstr "Coller le chemin" + +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 +msgid "Path to Gcode" +msgstr "Chemin vers G-code" + +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 +msgid "Post-processor:" +msgstr "Post-processeur :" + +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +msgid "Preferences" +msgstr "Préférences" + +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +msgid "Round all values to 4 digits" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +#, fuzzy +msgid "Scale along Z axis:" +msgstr "Longueur de base de l’axe z" + +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +msgid "Select all paths if nothing is selected" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Sort paths to reduse rapid distance" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Units (mm or in):" +msgstr "Unité (mm ou in) :" + +#: ../share/extensions/gcodetools_area.inx.h:48 +msgid "Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by colored arrows." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +msgid "Z safe height for G00 move over blank:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:50 +msgid "Zig zag" +msgstr "Zig-zag" + +#: ../share/extensions/gcodetools_area.inx.h:51 +msgid "delete" +msgstr "supprimer" + +#: ../share/extensions/gcodetools_area.inx.h:53 +msgid "mark with an arrow" +msgstr "marquer avec une flèche" + +#: ../share/extensions/gcodetools_area.inx.h:54 +#, fuzzy +msgid "mark with style" +msgstr "Style de commutation" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for Gcodetools latest stable version and try to get the updates." +msgstr "Vérifier si une nouvelle version est disponible pour mise à jour" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for updates" +msgstr "Vérifier les mises à jour" + #: ../share/extensions/gcodetools_dxf_points.inx.h:3 msgid "Convert selected objects to drill points (as dxf_import plugin does). Also you can save original shape. Only the start point of each curve will be used. Also you can manually select object, open XML editor (Shift+Ctrl+X) and add or remove XML tag 'dxfpoint' with any value." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:15 #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "Convert selection:" msgstr "Convertir la sélection :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 msgid "DXF points" msgstr "Points DXF" -#: ../share/extensions/gcodetools_all_in_one.inx.h:17 -#: ../share/extensions/gcodetools_area.inx.h:11 -#: ../share/extensions/gcodetools_dxf_points.inx.h:7 -#: ../share/extensions/gcodetools_engraving.inx.h:3 -#: ../share/extensions/gcodetools_lathe.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -msgid "Directory:" -msgstr "Dossier :" +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +msgid "clear dxfpoint sign" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:18 -msgid "Draw additional graphics to debug engraving path:" +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +msgid "set as dxfpoint and draw arrow" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:19 -#: ../share/extensions/gcodetools_engraving.inx.h:5 -msgid "Engraving" -msgstr "Gravure" +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +msgid "set as dxfpoint and save shape" +msgstr "définir en tant que dxfpoint et enregistrer la forme" + +#: ../share/extensions/gcodetools_engraving.inx.h:1 +msgid "Accuracy factor (2 low to 10 high):" +msgstr "Facteur de précision (2 faible à 10 fort) :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:20 -#: ../share/extensions/gcodetools_area.inx.h:12 -#: ../share/extensions/gcodetools_dxf_points.inx.h:8 #: ../share/extensions/gcodetools_engraving.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 -msgid "File:" -msgstr "Fichier :" +msgid "Draw additional graphics to see engraving path" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:21 -#: ../share/extensions/gcodetools_area.inx.h:13 -#: ../share/extensions/gcodetools_dxf_points.inx.h:9 #: ../share/extensions/gcodetools_engraving.inx.h:7 -#: ../share/extensions/gcodetools_lathe.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 -msgid "Full path to log file:" -msgstr "Chemin du fichier journal :" +msgid "Engraving" +msgstr "Gravure" -#: ../share/extensions/gcodetools_all_in_one.inx.h:22 -#: ../share/extensions/gcodetools_area.inx.h:14 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:10 -#: ../share/extensions/gcodetools_engraving.inx.h:8 -#: ../share/extensions/gcodetools_lathe.inx.h:11 -#: ../share/extensions/gcodetools_orientation_points.inx.h:3 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -#: ../share/extensions/gcodetools_tools_library.inx.h:1 -msgid "Gcodetools" -msgstr "Programmation de commande numérique" +#: ../share/extensions/gcodetools_engraving.inx.h:17 +#, fuzzy +msgid "Maximum distance for engraving (mm/inch):" +msgstr "Distance maximum pour graver :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:23 -#: ../share/extensions/gcodetools_area.inx.h:15 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 -#: ../share/extensions/gcodetools_dxf_points.inx.h:11 -#: ../share/extensions/gcodetools_engraving.inx.h:9 -#: ../share/extensions/gcodetools_lathe.inx.h:12 -#: ../share/extensions/gcodetools_orientation_points.inx.h:4 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 -#: ../share/extensions/gcodetools_tools_library.inx.h:2 -msgid "Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. Tutorials, manuals and support can be found at English support forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas. Gcodetools ver. 1.6.01" +#: ../share/extensions/gcodetools_engraving.inx.h:28 +msgid "Smooth convex corners between this value and 180 degrees:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:24 -#: ../share/extensions/gcodetools_area.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:12 -#: ../share/extensions/gcodetools_engraving.inx.h:10 -#: ../share/extensions/gcodetools_lathe.inx.h:13 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 -msgid "Generate log file" -msgstr "Générer un fichier journal" +#: ../share/extensions/gcodetools_engraving.inx.h:29 +msgid "This function creates path to engrave letters or any shape with sharp angles. Cutter's depth as a function of radius is defined by the tool. Depth may be any Python expression. For instance: cone....(45 degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:26 -#: ../share/extensions/gcodetools_tools_library.inx.h:4 -msgid "Just check tools" +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:2 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:27 -#: ../share/extensions/gcodetools_area.inx.h:18 -msgid "Maximum area cutting curves:" -msgstr "" +#: ../share/extensions/gcodetools_graffiti.inx.h:6 +msgid "Create linearization preview" +msgstr "Créer un aperçu de linéarisation" -#: ../share/extensions/gcodetools_all_in_one.inx.h:28 -#: ../share/extensions/gcodetools_engraving.inx.h:12 -msgid "Maximum distance for engraving:" -msgstr "Distance maximum pour graver :" +#: ../share/extensions/gcodetools_graffiti.inx.h:7 +msgid "Create preview" +msgstr "Créer un aperçu" -#: ../share/extensions/gcodetools_all_in_one.inx.h:29 -#: ../share/extensions/gcodetools_area.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:19 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +msgid "Graffiti" +msgstr "Graffiti" + +#: ../share/extensions/gcodetools_graffiti.inx.h:19 #, fuzzy -msgid "Maximum splitting depth:" -msgstr "Simplification des chemins :" +msgid "Maximum segment length:" +msgstr "Longueur maximum de segment (px) :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:30 -#: ../share/extensions/gcodetools_area.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:13 -#: ../share/extensions/gcodetools_lathe.inx.h:20 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 -msgid "Minimum arc radius:" +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +#, fuzzy +msgid "Minimal connector radius:" msgstr "Rayon d'arc minimum :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:31 -#: ../share/extensions/gcodetools_engraving.inx.h:14 -msgid "Number of sample points used to calculate distance:" -msgstr "" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:32 -#: ../share/extensions/gcodetools_area.inx.h:21 -#: ../share/extensions/gcodetools_engraving.inx.h:15 -#: ../share/extensions/gcodetools_lathe.inx.h:21 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 -msgid "Offset along Z axis:" -msgstr "Décalage sur l'axe Z :" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:35 -#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 msgid "Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path. 3-points mode only: do not put all three into one line (use 2-points mode instead). You can modify Z surface, Z depth values later using text tool (3rd coordinates). If there are no orientation points inside current layer they are taken from the upper layer. Do not ungroup orientation points! You can select them using double click to enter the group or by Ctrl+Click. Now press apply to create control points (independent set for each layer)." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:36 -#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 msgid "Orientation type:" msgstr "Type d'orientation :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:37 -#: ../share/extensions/gcodetools_area.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:23 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 -msgid "Path to Gcode" -msgstr "Chemin vers G-code" +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +msgid "Preview's paint emmit (pts/s):" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:38 -#: ../share/extensions/gcodetools_area.inx.h:24 -#: ../share/extensions/gcodetools_dxf_points.inx.h:14 -#: ../share/extensions/gcodetools_engraving.inx.h:17 -#: ../share/extensions/gcodetools_lathe.inx.h:24 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 -msgid "Post-processor:" -msgstr "Post-processeur :" +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +msgid "Preview's size (px):" +msgstr "Taille de l'aperçu (px) :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:39 -#: ../share/extensions/gcodetools_area.inx.h:25 -#: ../share/extensions/gcodetools_dxf_points.inx.h:15 -#: ../share/extensions/gcodetools_engraving.inx.h:18 -#: ../share/extensions/gcodetools_lathe.inx.h:25 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 -msgid "Preferences" -msgstr "Préférences" +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +#, fuzzy +msgid "Start position (x;y):" +msgstr "Disposition du composant :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:40 -#: ../share/extensions/gcodetools_area.inx.h:26 -#: ../share/extensions/gcodetools_engraving.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:26 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +msgid "Z depth:" +msgstr "Profondeur sur l'axe Z :" + +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 #, fuzzy -msgid "Scale along Z axis:" -msgstr "Longueur de base de l’axe z" +msgid "Z surface:" +msgstr "Ordonner les côtés sur l’axe Z par :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:41 -#: ../share/extensions/gcodetools_area.inx.h:27 -#: ../share/extensions/gcodetools_engraving.inx.h:20 -#: ../share/extensions/gcodetools_lathe.inx.h:27 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 -msgid "Select all paths if nothing is selected" -msgstr "" +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +msgid "graffiti points" +msgstr "Points graffiti" -#: ../share/extensions/gcodetools_all_in_one.inx.h:42 -#: ../share/extensions/gcodetools_tools_library.inx.h:5 -msgid "Selected tool type fills appropriate default values. You can change these values using the Text tool later on. The topmost (z order) tool in the active layer is used. If there is no tool inside the current layer it is taken from the upper layer. Press Apply to create new tool." -msgstr "" +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#, fuzzy +msgid "in-out reference point" +msgstr "Préférences des dégradés" -#: ../share/extensions/gcodetools_all_in_one.inx.h:43 -#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:6 #, fuzzy -msgid "Sharp angle tolerance:" -msgstr "Tolérance maximale de fin :" +msgid "Create fine cut using:" +msgstr "Créer de nouveaux objets avec :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:44 -#: ../share/extensions/gcodetools_engraving.inx.h:22 -msgid "This function creates path to engrave sharp angles. Cutter's shape function is defined by the tool. Some simple shapes: cone....(45 degrees)...........: w cone....(height/diameter=10/3).: 10/3 w sphere..(\"r\" diameter).........: math.sqrt(max(0,r**2-w**2)) ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4" +#: ../share/extensions/gcodetools_lathe.inx.h:12 +#, fuzzy +msgid "Fine cut count:" +msgstr "Rechercher cette police :" + +#: ../share/extensions/gcodetools_lathe.inx.h:13 +#, fuzzy +msgid "Fine cut width:" +msgstr "Largeur de recouvrement :" + +#: ../share/extensions/gcodetools_lathe.inx.h:21 +msgid "Lathe" +msgstr "Tour" + +#: ../share/extensions/gcodetools_lathe.inx.h:22 +msgid "Lathe X axis remap:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:45 -#: ../share/extensions/gcodetools_tools_library.inx.h:6 -msgid "Tools library" -msgstr "Bibliothèque d'outils" +#: ../share/extensions/gcodetools_lathe.inx.h:23 +msgid "Lathe Z axis remap:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:46 -#: ../share/extensions/gcodetools_tools_library.inx.h:7 -msgid "Tools type:" -msgstr "Type d'outils : " +#: ../share/extensions/gcodetools_lathe.inx.h:24 +#, fuzzy +msgid "Lathe modify path" +msgstr "Modifer le chemin" + +#: ../share/extensions/gcodetools_lathe.inx.h:25 +msgid "Lathe width:" +msgstr "Largeur du tour :" -#: ../share/extensions/gcodetools_all_in_one.inx.h:47 -#: ../share/extensions/gcodetools_area.inx.h:28 -#: ../share/extensions/gcodetools_dxf_points.inx.h:16 -#: ../share/extensions/gcodetools_engraving.inx.h:23 #: ../share/extensions/gcodetools_lathe.inx.h:28 -#: ../share/extensions/gcodetools_orientation_points.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -msgid "Units (mm or in):" -msgstr "Unité (mm ou in) :" +#, fuzzy +msgid "Move path" +msgstr "Déplacer les motifs" -#: ../share/extensions/gcodetools_all_in_one.inx.h:48 -#: ../share/extensions/gcodetools_area.inx.h:29 -msgid "Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by colored arrows." +#: ../share/extensions/gcodetools_lathe.inx.h:44 +msgid "This function modifies path so it will be able to be cut with the rectangular cutter." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:49 -#: ../share/extensions/gcodetools_orientation_points.inx.h:11 -msgid "Z depth:" -msgstr "Profondeur sur l'axe Z :" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:50 -#: ../share/extensions/gcodetools_area.inx.h:30 -#: ../share/extensions/gcodetools_dxf_points.inx.h:17 -#: ../share/extensions/gcodetools_engraving.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:29 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 -msgid "Z safe height for G00 move over blank:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "-------------------------------------------------" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:51 -#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 #, fuzzy -msgid "Z surface:" -msgstr "Ordonner les côtés sur l’axe Z par :" +msgid "Create in-out paths" +msgstr "Créer un chemin spirographique" -#: ../share/extensions/gcodetools_all_in_one.inx.h:52 -#: ../share/extensions/gcodetools_dxf_points.inx.h:18 -msgid "clear dxfpoint sign" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +msgid "Do not add in-out reference points" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:53 -#: ../share/extensions/gcodetools_tools_library.inx.h:8 -msgid "cone" -msgstr "cône" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:54 -#: ../share/extensions/gcodetools_tools_library.inx.h:9 -msgid "cylinder" -msgstr "Cylindre" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +#, fuzzy +msgid "In-out path length:" +msgstr "Longueur du chemin" -#: ../share/extensions/gcodetools_all_in_one.inx.h:55 -#: ../share/extensions/gcodetools_tools_library.inx.h:10 -msgid "default" -msgstr "défaut" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +msgid "In-out path max distance to reference point:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:56 -#: ../share/extensions/gcodetools_area.inx.h:31 -msgid "delete" -msgstr "supprimer" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "In-out path radius for round path:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:57 -#: ../share/extensions/gcodetools_tools_library.inx.h:11 -msgid "lathe cutter" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 +msgid "In-out path type:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:58 -#: ../share/extensions/gcodetools_area.inx.h:32 -msgid "mark with an arrow" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +msgid "Maximum angle for corner (0-180 deg):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:59 -#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 #, fuzzy -msgid "mark with style" -msgstr "Style de commutation" +msgid "Perpendicular" +msgstr "Médiatrice" -#: ../share/extensions/gcodetools_all_in_one.inx.h:60 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 #, fuzzy -msgid "plasma" -msgstr "_Splash" +msgid "Prepare corners" +msgstr "coin de page" -#: ../share/extensions/gcodetools_all_in_one.inx.h:61 -#: ../share/extensions/gcodetools_dxf_points.inx.h:19 -msgid "set as dxfpoint and draw arrow" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 +msgid "Prepare path for plasma or laser cuters" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:62 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -msgid "set as dxfpoint and save shape" -msgstr "définir en tant que dxfpoint et enregistrer la forme" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 +#, fuzzy +msgid "Replace original path" +msgstr "Remplacer des polices" -#: ../share/extensions/gcodetools_all_in_one.inx.h:63 -#: ../share/extensions/gcodetools_tools_library.inx.h:13 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 #, fuzzy -msgid "tangent knife" -msgstr "Décalage tangentiel" +msgid "Round" +msgstr "Arrondi" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 -msgid "Check for Gcodetools latest stable version and try to get the updates." -msgstr "Vérifier si une nouvelle version est disponible pour mise à jour" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#, fuzzy +msgid "Stepout distance for corners:" +msgstr "Aimanter aux coins des boîtes englobantes" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 -msgid "Check for updates" -msgstr "Vérifier les mises à jour" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +#, fuzzy +msgid "Tangent" +msgstr "Magenta" -#: ../share/extensions/gcodetools_dxf_points.inx.h:5 -msgid "DXF Points" -msgstr "Points DXF" +#: ../share/extensions/gcodetools_tools_library.inx.h:4 +msgid "Just check tools" +msgstr "" -#: ../share/extensions/gcodetools_engraving.inx.h:4 -msgid "Draw additional graphics to debug engraving path" +#: ../share/extensions/gcodetools_tools_library.inx.h:5 +msgid "Selected tool type fills appropriate default values. You can change these values using the Text tool later on. The topmost (z order) tool in the active layer is used. If there is no tool inside the current layer it is taken from the upper layer. Press Apply to create new tool." msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:5 -#, fuzzy -msgid "Create fine cut using:" -msgstr "Créer de nouveaux objets avec :" +#: ../share/extensions/gcodetools_tools_library.inx.h:6 +msgid "Tools library" +msgstr "Bibliothèque d'outils" -#: ../share/extensions/gcodetools_lathe.inx.h:7 -msgid "File" -msgstr "Fichier" +#: ../share/extensions/gcodetools_tools_library.inx.h:7 +msgid "Tools type:" +msgstr "Type d'outils : " -#: ../share/extensions/gcodetools_lathe.inx.h:8 -#, fuzzy -msgid "Fine cut count:" -msgstr "Rechercher cette police :" +#: ../share/extensions/gcodetools_tools_library.inx.h:8 +msgid "cone" +msgstr "cône" -#: ../share/extensions/gcodetools_lathe.inx.h:9 -#, fuzzy -msgid "Fine cut width:" -msgstr "Largeur de recouvrement :" +#: ../share/extensions/gcodetools_tools_library.inx.h:9 +msgid "cylinder" +msgstr "Cylindre" -#: ../share/extensions/gcodetools_lathe.inx.h:15 -msgid "Lathe" -msgstr "Tour" +#: ../share/extensions/gcodetools_tools_library.inx.h:10 +msgid "default" +msgstr "défaut" -#: ../share/extensions/gcodetools_lathe.inx.h:16 -msgid "Lathe X axis remap:" -msgstr "" +#: ../share/extensions/gcodetools_tools_library.inx.h:11 +msgid "graffiti" +msgstr "graffiti" -#: ../share/extensions/gcodetools_lathe.inx.h:17 -msgid "Lathe Z axis remap:" +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +msgid "lathe cutter" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:18 -msgid "Lathe width:" -msgstr "Largeur du tour :" +#: ../share/extensions/gcodetools_tools_library.inx.h:13 +#, fuzzy +msgid "plasma" +msgstr "_Splash" -#: ../share/extensions/gcodetools_orientation_points.inx.h:7 -msgid "Orientation points" -msgstr "Points d'orientation" +#: ../share/extensions/gcodetools_tools_library.inx.h:14 +#, fuzzy +msgid "tangent knife" +msgstr "Décalage tangentiel" #: ../share/extensions/generate_voronoi.inx.h:1 msgid "Average size of cell (px):" @@ -27839,6 +28112,22 @@ msgstr "Entrée métafichier Windows (*.wmf)" msgid "XAML Input" msgstr "Entrée XAML" +#~ msgid "Iconify" +#~ msgstr "Iconifier" +#~ msgid "Close" +#~ msgstr "Fermer" +#~ msgid "(invalid UTF-8 string)" +#~ msgstr "(chaîne UTF-8 invalide)" +#~ msgid "All in one" +#~ msgstr "Tout en un" + +#, fuzzy +#~ msgid "Sharp angle tolerance:" +#~ msgstr "Tolérance maximale de fin :" +#~ msgid "DXF Points" +#~ msgstr "Points DXF" +#~ msgid "File" +#~ msgstr "Fichier" #~ msgid "center" #~ msgstr "centre" #~ msgid "Center" @@ -27858,10 +28147,6 @@ msgstr "Entrée XAML" #~ msgstr "Translucide" #~ msgid "Label:" #~ msgstr "Étiquette :" -#~ msgid "Iconify this dock" -#~ msgstr "Iconifier ce point d’attache" -#~ msgid "Close this dock" -#~ msgstr "Fermer ce point d’attache" #, fuzzy #~ msgid "Ancestor offset" @@ -28982,10 +29267,6 @@ msgstr "Entrée XAML" #, fuzzy #~ msgid "Area width" #~ msgstr "Épaisseur du contour" - -#, fuzzy -#~ msgid "artefact diameter:" -#~ msgstr "Coller le paramètre du chemin" #~ msgid "Spacing" #~ msgstr "Espacement" #~ msgid "Normal offset" diff --git a/po/inkscape.pot b/po/inkscape.pot index da52cee81..f044d695f 100644 --- a/po/inkscape.pot +++ b/po/inkscape.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2011-06-29 21:07+0200\n" +"POT-Creation-Date: 2011-07-10 19:44+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -118,48 +118,67 @@ msgstr "" msgid "Unable to find image data." msgstr "" -#: ../share/extensions/gcodetools.py:3087 +#: ../share/extensions/gcodetools.py:3317 +#: ../share/extensions/gcodetools.py:4522 +#: ../share/extensions/gcodetools.py:4695 +#: ../share/extensions/gcodetools.py:6228 +#: ../share/extensions/gcodetools.py:6423 +msgid "No paths are selected! Trying to work on all available paths." +msgstr "" + +#: ../share/extensions/gcodetools.py:3320 +msgid "Noting is selected. Please select something." +msgstr "" + +#: ../share/extensions/gcodetools.py:3860 msgid "" "Directory does not exist! Please specify existing directory at Preferences " "tab!" msgstr "" -#: ../share/extensions/gcodetools.py:3112 +#: ../share/extensions/gcodetools.py:3890 #, python-format msgid "" "Can not write to specified file!\n" "%s" msgstr "" -#: ../share/extensions/gcodetools.py:3240 +#: ../share/extensions/gcodetools.py:4036 #, python-format msgid "" "Orientation points for '%s' layer have not been found! Please add " "orientation points using Orientation tab!" msgstr "" -#: ../share/extensions/gcodetools.py:3246 +#: ../share/extensions/gcodetools.py:4043 #, python-format msgid "There are more than one orientation point groups in '%s' layer" msgstr "" -#: ../share/extensions/gcodetools.py:3277 -#: ../share/extensions/gcodetools.py:3279 +#: ../share/extensions/gcodetools.py:4074 +#: ../share/extensions/gcodetools.py:4076 msgid "" "Orientation points are wrong! (if there are two orientation points they " -"sould not be the same. If there are three orientation points they should not " -"be in a straight line.)" +"should not be the same. If there are three orientation points they should " +"not be in a straight line.)" msgstr "" -#: ../share/extensions/gcodetools.py:3398 +#: ../share/extensions/gcodetools.py:4246 #, python-format msgid "" "Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " "be corrupt!" msgstr "" +#: ../share/extensions/gcodetools.py:4259 +#, python-format +msgid "" +"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " +"could be corrupt!" +msgstr "" + #. xgettext:no-pango-format -#: ../share/extensions/gcodetools.py:3412 +#: ../share/extensions/gcodetools.py:4280 msgid "" "This extension works with Paths and Dynamic Offsets and groups of them only! " "All other objects will be ignored!\n" @@ -169,85 +188,108 @@ msgid "" "and File->Import this file." msgstr "" -#: ../share/extensions/gcodetools.py:3469 +#: ../share/extensions/gcodetools.py:4286 +msgid "" +"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" +"+L)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4290 +msgid "" +"Warning! There are some paths in the root of the document, but not in any " +"layer! Using bottom-most layer for them." +msgstr "" + +#: ../share/extensions/gcodetools.py:4367 #, python-format msgid "" "Warning! Tool's and default tool's parameter's (%s) types are not the same " "( type('%s') != type('%s') )." msgstr "" -#: ../share/extensions/gcodetools.py:3472 +#: ../share/extensions/gcodetools.py:4370 #, python-format msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." msgstr "" -#: ../share/extensions/gcodetools.py:3486 +#: ../share/extensions/gcodetools.py:4384 #, python-format msgid "Layer '%s' contains more than one tool!" msgstr "" -#: ../share/extensions/gcodetools.py:3489 +#: ../share/extensions/gcodetools.py:4387 #, python-format msgid "" "Can not find tool for '%s' layer! Please add one with Tools library tab!" msgstr "" -#: ../share/extensions/gcodetools.py:3592 -#: ../share/extensions/gcodetools.py:3673 -msgid "No paths are selected! Trying to work on all available paths." -msgstr "" - -#: ../share/extensions/gcodetools.py:3611 -#: ../share/extensions/gcodetools.py:3682 +#: ../share/extensions/gcodetools.py:4549 +#: ../share/extensions/gcodetools.py:4704 msgid "" -"Warning: One or more paths dont have 'd' parameter, try to Ungroup (Ctrl" +"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" "+Shift+G) and Object to Path (Ctrl+Shift+C)!" msgstr "" -#: ../share/extensions/gcodetools.py:3641 +#: ../share/extensions/gcodetools.py:4663 msgid "" -"Nothing is selected. Please select something to convert to drill point " +"Noting is selected. Please select something to convert to drill point " "(dxfpoint) or clear point sign." msgstr "" -#: ../share/extensions/gcodetools.py:3714 -#: ../share/extensions/gcodetools.py:3808 +#: ../share/extensions/gcodetools.py:4746 +#: ../share/extensions/gcodetools.py:4992 msgid "This extension requires at least one selected path." msgstr "" -#: ../share/extensions/gcodetools.py:3720 +#: ../share/extensions/gcodetools.py:4752 +#: ../share/extensions/gcodetools.py:4998 #, python-format msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" msgstr "" -#: ../share/extensions/gcodetools.py:3731 +#: ../share/extensions/gcodetools.py:4763 +#: ../share/extensions/gcodetools.py:4952 +#: ../share/extensions/gcodetools.py:5007 msgid "Warning: omitting non-path" msgstr "" -#: ../share/extensions/gcodetools.py:4063 +#: ../share/extensions/gcodetools.py:5507 +msgid "Please select at least one path to engrave and run again." +msgstr "" + +#: ../share/extensions/gcodetools.py:5515 +msgid "Unknown unit selected. mm assumed" +msgstr "" + +#: ../share/extensions/gcodetools.py:5536 #, python-format -msgid "Tool '%s' has no shape!" +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "" + +#: ../share/extensions/gcodetools.py:5607 +#: ../share/extensions/gcodetools.py:5612 +msgid "csp_normalised_normal error. See log." msgstr "" -#: ../share/extensions/gcodetools.py:4073 +#: ../share/extensions/gcodetools.py:5800 msgid "No need to engrave sharp angles." msgstr "" -#: ../share/extensions/gcodetools.py:4086 +#: ../share/extensions/gcodetools.py:5844 msgid "" "Active layer already has orientation points! Remove them or select another " "layer!" msgstr "" -#: ../share/extensions/gcodetools.py:4134 +#: ../share/extensions/gcodetools.py:5889 msgid "Active layer already has a tool! Remove it or select another layer!" msgstr "" -#: ../share/extensions/gcodetools.py:4258 +#: ../share/extensions/gcodetools.py:6004 msgid "Selection is empty! Will compute whole drawing." msgstr "" -#: ../share/extensions/gcodetools.py:4318 +#: ../share/extensions/gcodetools.py:6058 msgid "" "Tutorials, manuals and support can be found at\n" "English support forum:\n" @@ -256,27 +298,29 @@ msgid "" "\thttp://www.cnc-club.ru/gcodetoolsru" msgstr "" -#: ../share/extensions/gcodetools.py:4363 +#: ../share/extensions/gcodetools.py:6103 msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." msgstr "" -#: ../share/extensions/gcodetools.py:4366 +#: ../share/extensions/gcodetools.py:6106 msgid "Lathe X and Z axis remap should be the same. Exiting..." msgstr "" -#: ../share/extensions/gcodetools.py:4527 +#: ../share/extensions/gcodetools.py:6658 +#, python-format msgid "" -"Select one of the active tabs - Path to Gcode, Area, Engraving, DXF points, " -"Orientation, Offset, Lathe or Tools library." +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " +"Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" msgstr "" -#: ../share/extensions/gcodetools.py:4533 +#: ../share/extensions/gcodetools.py:6664 msgid "" "Orientation points have not been defined! A default set of orientation " "points has been automatically added." msgstr "" -#: ../share/extensions/gcodetools.py:4537 +#: ../share/extensions/gcodetools.py:6668 msgid "" "Cutting tool has not been defined! A default tool has been automatically " "added." @@ -342,28 +386,28 @@ msgid "" "Try using the procedure Path->Object to Path." msgstr "" -#: ../share/extensions/perspective.py:74 -#: ../share/extensions/summersnight.py:50 +#: ../share/extensions/perspective.py:75 +#: ../share/extensions/summersnight.py:51 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:82 +#: ../share/extensions/perspective.py:101 +#: ../share/extensions/summersnight.py:84 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." msgstr "" -#: ../share/extensions/perspective.py:101 -#: ../share/extensions/summersnight.py:84 +#: ../share/extensions/perspective.py:103 +#: ../share/extensions/summersnight.py:86 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." msgstr "" -#: ../share/extensions/perspective.py:104 -#: ../share/extensions/summersnight.py:87 +#: ../share/extensions/perspective.py:106 +#: ../share/extensions/summersnight.py:89 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -702,7 +746,7 @@ msgstr "" #. Pencil #: ../share/filters/filters.svg.h:1 -#: ../src/ui/dialog/inkscape-preferences.cpp:521 ../src/verbs.cpp:2520 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 ../src/verbs.cpp:2520 msgid "Pencil" msgstr "" @@ -723,8 +767,8 @@ msgstr "" msgid "Desaturate" msgstr "" -#: ../share/filters/filters.svg.h:1 ../src/dialogs/clonetiler.cpp:2509 -#: ../src/dialogs/clonetiler.cpp:2648 +#: ../share/filters/filters.svg.h:1 ../src/dialogs/clonetiler.cpp:2517 +#: ../src/dialogs/clonetiler.cpp:2656 #: ../src/extension/internal/bitmap/colorize.cpp:51 #: ../src/extension/internal/filter/abc.h:477 #: ../src/extension/internal/filter/abc.h:580 @@ -3773,11 +3817,11 @@ msgstr "" msgid "Select at least one non-connector object." msgstr "" -#: ../src/connector-context.cpp:1968 ../src/widgets/toolbox.cpp:8280 +#: ../src/connector-context.cpp:1968 ../src/widgets/toolbox.cpp:8298 msgid "Make connectors avoid selected objects" msgstr "" -#: ../src/connector-context.cpp:1969 ../src/widgets/toolbox.cpp:8290 +#: ../src/connector-context.cpp:1969 ../src/widgets/toolbox.cpp:8308 msgid "Make connectors ignore selected objects" msgstr "" @@ -3882,611 +3926,606 @@ msgstr "" msgid "_Symmetry" msgstr "" -#. TRANSLATORS: For the following 17 symmetry groups, see -#. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples); -#. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or -#. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary). -#. -#: ../src/dialogs/clonetiler.cpp:1821 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "" - #. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/dialogs/clonetiler.cpp:1832 +#: ../src/dialogs/clonetiler.cpp:1825 msgid "P1: simple translation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1833 +#: ../src/dialogs/clonetiler.cpp:1826 msgid "P2: 180° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1834 +#: ../src/dialogs/clonetiler.cpp:1827 msgid "PM: reflection" msgstr "" #. TRANSLATORS: "glide reflection" is a reflection and a translation combined. #. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/dialogs/clonetiler.cpp:1837 +#: ../src/dialogs/clonetiler.cpp:1830 msgid "PG: glide reflection" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1838 +#: ../src/dialogs/clonetiler.cpp:1831 msgid "CM: reflection + glide reflection" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1839 +#: ../src/dialogs/clonetiler.cpp:1832 msgid "PMM: reflection + reflection" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1840 +#: ../src/dialogs/clonetiler.cpp:1833 msgid "PMG: reflection + 180° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1841 +#: ../src/dialogs/clonetiler.cpp:1834 msgid "PGG: glide reflection + 180° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1842 +#: ../src/dialogs/clonetiler.cpp:1835 msgid "CMM: reflection + reflection + 180° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1843 +#: ../src/dialogs/clonetiler.cpp:1836 msgid "P4: 90° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1844 +#: ../src/dialogs/clonetiler.cpp:1837 msgid "P4M: 90° rotation + 45° reflection" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1845 +#: ../src/dialogs/clonetiler.cpp:1838 msgid "P4G: 90° rotation + 90° reflection" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1846 +#: ../src/dialogs/clonetiler.cpp:1839 msgid "P3: 120° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1847 +#: ../src/dialogs/clonetiler.cpp:1840 msgid "P31M: reflection + 120° rotation, dense" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1848 +#: ../src/dialogs/clonetiler.cpp:1841 msgid "P3M1: reflection + 120° rotation, sparse" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1849 +#: ../src/dialogs/clonetiler.cpp:1842 msgid "P6: 60° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1850 +#: ../src/dialogs/clonetiler.cpp:1843 msgid "P6M: reflection + 60° rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1878 +#: ../src/dialogs/clonetiler.cpp:1865 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "" + +#: ../src/dialogs/clonetiler.cpp:1886 msgid "S_hift" msgstr "" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/dialogs/clonetiler.cpp:1888 +#: ../src/dialogs/clonetiler.cpp:1896 #, no-c-format msgid "Shift X:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1896 +#: ../src/dialogs/clonetiler.cpp:1904 #, no-c-format msgid "Horizontal shift per row (in % of tile width)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1904 +#: ../src/dialogs/clonetiler.cpp:1912 #, no-c-format msgid "Horizontal shift per column (in % of tile width)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1910 +#: ../src/dialogs/clonetiler.cpp:1918 msgid "Randomize the horizontal shift by this percentage" msgstr "" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/dialogs/clonetiler.cpp:1920 +#: ../src/dialogs/clonetiler.cpp:1928 #, no-c-format msgid "Shift Y:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1928 +#: ../src/dialogs/clonetiler.cpp:1936 #, no-c-format msgid "Vertical shift per row (in % of tile height)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1936 +#: ../src/dialogs/clonetiler.cpp:1944 #, no-c-format msgid "Vertical shift per column (in % of tile height)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1943 +#: ../src/dialogs/clonetiler.cpp:1951 msgid "Randomize the vertical shift by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1951 ../src/dialogs/clonetiler.cpp:2097 +#: ../src/dialogs/clonetiler.cpp:1959 ../src/dialogs/clonetiler.cpp:2105 msgid "Exponent:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1958 +#: ../src/dialogs/clonetiler.cpp:1966 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1965 +#: ../src/dialogs/clonetiler.cpp:1973 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "" #. TRANSLATORS: "Alternate" is a verb here -#: ../src/dialogs/clonetiler.cpp:1973 ../src/dialogs/clonetiler.cpp:2137 -#: ../src/dialogs/clonetiler.cpp:2213 ../src/dialogs/clonetiler.cpp:2286 -#: ../src/dialogs/clonetiler.cpp:2332 ../src/dialogs/clonetiler.cpp:2454 +#: ../src/dialogs/clonetiler.cpp:1981 ../src/dialogs/clonetiler.cpp:2145 +#: ../src/dialogs/clonetiler.cpp:2221 ../src/dialogs/clonetiler.cpp:2294 +#: ../src/dialogs/clonetiler.cpp:2340 ../src/dialogs/clonetiler.cpp:2462 msgid "Alternate:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1979 +#: ../src/dialogs/clonetiler.cpp:1987 msgid "Alternate the sign of shifts for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1984 +#: ../src/dialogs/clonetiler.cpp:1992 msgid "Alternate the sign of shifts for each column" msgstr "" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:1991 ../src/dialogs/clonetiler.cpp:2155 -#: ../src/dialogs/clonetiler.cpp:2231 +#: ../src/dialogs/clonetiler.cpp:1999 ../src/dialogs/clonetiler.cpp:2163 +#: ../src/dialogs/clonetiler.cpp:2239 msgid "Cumulate:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:1997 +#: ../src/dialogs/clonetiler.cpp:2005 msgid "Cumulate the shifts for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2002 +#: ../src/dialogs/clonetiler.cpp:2010 msgid "Cumulate the shifts for each column" msgstr "" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:2009 +#: ../src/dialogs/clonetiler.cpp:2017 msgid "Exclude tile:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2015 +#: ../src/dialogs/clonetiler.cpp:2023 msgid "Exclude tile height in shift" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2020 +#: ../src/dialogs/clonetiler.cpp:2028 msgid "Exclude tile width in shift" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2029 +#: ../src/dialogs/clonetiler.cpp:2037 msgid "Sc_ale" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2037 +#: ../src/dialogs/clonetiler.cpp:2045 msgid "Scale X:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2045 +#: ../src/dialogs/clonetiler.cpp:2053 #, no-c-format msgid "Horizontal scale per row (in % of tile width)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2053 +#: ../src/dialogs/clonetiler.cpp:2061 #, no-c-format msgid "Horizontal scale per column (in % of tile width)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2059 +#: ../src/dialogs/clonetiler.cpp:2067 msgid "Randomize the horizontal scale by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2067 +#: ../src/dialogs/clonetiler.cpp:2075 msgid "Scale Y:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2075 +#: ../src/dialogs/clonetiler.cpp:2083 #, no-c-format msgid "Vertical scale per row (in % of tile height)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2083 +#: ../src/dialogs/clonetiler.cpp:2091 #, no-c-format msgid "Vertical scale per column (in % of tile height)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2089 +#: ../src/dialogs/clonetiler.cpp:2097 msgid "Randomize the vertical scale by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2103 +#: ../src/dialogs/clonetiler.cpp:2111 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2109 +#: ../src/dialogs/clonetiler.cpp:2117 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2117 +#: ../src/dialogs/clonetiler.cpp:2125 msgid "Base:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2123 ../src/dialogs/clonetiler.cpp:2129 +#: ../src/dialogs/clonetiler.cpp:2131 ../src/dialogs/clonetiler.cpp:2137 msgid "" "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2143 +#: ../src/dialogs/clonetiler.cpp:2151 msgid "Alternate the sign of scales for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2148 +#: ../src/dialogs/clonetiler.cpp:2156 msgid "Alternate the sign of scales for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2161 +#: ../src/dialogs/clonetiler.cpp:2169 msgid "Cumulate the scales for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2166 +#: ../src/dialogs/clonetiler.cpp:2174 msgid "Cumulate the scales for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2175 +#: ../src/dialogs/clonetiler.cpp:2183 msgid "_Rotation" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2183 +#: ../src/dialogs/clonetiler.cpp:2191 msgid "Angle:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2191 +#: ../src/dialogs/clonetiler.cpp:2199 #, no-c-format msgid "Rotate tiles by this angle for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2199 +#: ../src/dialogs/clonetiler.cpp:2207 #, no-c-format msgid "Rotate tiles by this angle for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2205 +#: ../src/dialogs/clonetiler.cpp:2213 msgid "Randomize the rotation angle by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2219 +#: ../src/dialogs/clonetiler.cpp:2227 msgid "Alternate the rotation direction for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2224 +#: ../src/dialogs/clonetiler.cpp:2232 msgid "Alternate the rotation direction for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2237 +#: ../src/dialogs/clonetiler.cpp:2245 msgid "Cumulate the rotation for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2242 +#: ../src/dialogs/clonetiler.cpp:2250 msgid "Cumulate the rotation for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2251 +#: ../src/dialogs/clonetiler.cpp:2259 msgid "_Blur & opacity" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2260 +#: ../src/dialogs/clonetiler.cpp:2268 msgid "Blur:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2266 +#: ../src/dialogs/clonetiler.cpp:2274 msgid "Blur tiles by this percentage for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2272 +#: ../src/dialogs/clonetiler.cpp:2280 msgid "Blur tiles by this percentage for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2278 +#: ../src/dialogs/clonetiler.cpp:2286 msgid "Randomize the tile blur by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2292 +#: ../src/dialogs/clonetiler.cpp:2300 msgid "Alternate the sign of blur change for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2297 +#: ../src/dialogs/clonetiler.cpp:2305 msgid "Alternate the sign of blur change for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2306 +#: ../src/dialogs/clonetiler.cpp:2314 msgid "Opacity:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2312 +#: ../src/dialogs/clonetiler.cpp:2320 msgid "Decrease tile opacity by this percentage for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2318 +#: ../src/dialogs/clonetiler.cpp:2326 msgid "Decrease tile opacity by this percentage for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2324 +#: ../src/dialogs/clonetiler.cpp:2332 msgid "Randomize the tile opacity by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2338 +#: ../src/dialogs/clonetiler.cpp:2346 msgid "Alternate the sign of opacity change for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2343 +#: ../src/dialogs/clonetiler.cpp:2351 msgid "Alternate the sign of opacity change for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2351 +#: ../src/dialogs/clonetiler.cpp:2359 msgid "Co_lor" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2356 +#: ../src/dialogs/clonetiler.cpp:2364 msgid "Initial color: " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2360 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "Initial color of tiled clones" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2360 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "" "Initial color for clones (works only if the original has unset fill or " "stroke)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2375 +#: ../src/dialogs/clonetiler.cpp:2383 msgid "H:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2381 +#: ../src/dialogs/clonetiler.cpp:2389 msgid "Change the tile hue by this percentage for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2387 +#: ../src/dialogs/clonetiler.cpp:2395 msgid "Change the tile hue by this percentage for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2393 +#: ../src/dialogs/clonetiler.cpp:2401 msgid "Randomize the tile hue by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2402 +#: ../src/dialogs/clonetiler.cpp:2410 msgid "S:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2408 +#: ../src/dialogs/clonetiler.cpp:2416 msgid "Change the color saturation by this percentage for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2414 +#: ../src/dialogs/clonetiler.cpp:2422 msgid "Change the color saturation by this percentage for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2420 +#: ../src/dialogs/clonetiler.cpp:2428 msgid "Randomize the color saturation by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2428 +#: ../src/dialogs/clonetiler.cpp:2436 msgid "L:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2434 +#: ../src/dialogs/clonetiler.cpp:2442 msgid "Change the color lightness by this percentage for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2440 +#: ../src/dialogs/clonetiler.cpp:2448 msgid "Change the color lightness by this percentage for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2446 +#: ../src/dialogs/clonetiler.cpp:2454 msgid "Randomize the color lightness by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2460 +#: ../src/dialogs/clonetiler.cpp:2468 msgid "Alternate the sign of color changes for each row" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2465 +#: ../src/dialogs/clonetiler.cpp:2473 msgid "Alternate the sign of color changes for each column" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2473 +#: ../src/dialogs/clonetiler.cpp:2481 msgid "_Trace" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2480 +#: ../src/dialogs/clonetiler.cpp:2488 msgid "Trace the drawing under the tiles" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2484 +#: ../src/dialogs/clonetiler.cpp:2492 msgid "" "For each clone, pick a value from the drawing in that clone's location and " "apply it to the clone" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2498 +#: ../src/dialogs/clonetiler.cpp:2506 msgid "1. Pick from the drawing:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2510 +#: ../src/dialogs/clonetiler.cpp:2518 msgid "Pick the visible color and opacity" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2517 ../src/dialogs/clonetiler.cpp:2658 +#: ../src/dialogs/clonetiler.cpp:2525 ../src/dialogs/clonetiler.cpp:2666 #: ../src/extension/internal/bitmap/opacity.cpp:37 -#: ../src/widgets/toolbox.cpp:4583 ../share/extensions/interp_att_g.inx.h:14 +#: ../src/widgets/toolbox.cpp:4601 ../share/extensions/interp_att_g.inx.h:14 msgid "Opacity" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2518 +#: ../src/dialogs/clonetiler.cpp:2526 msgid "Pick the total accumulated opacity" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2525 +#: ../src/dialogs/clonetiler.cpp:2533 msgid "R" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2526 +#: ../src/dialogs/clonetiler.cpp:2534 msgid "Pick the Red component of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2533 +#: ../src/dialogs/clonetiler.cpp:2541 msgid "G" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2534 +#: ../src/dialogs/clonetiler.cpp:2542 msgid "Pick the Green component of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2541 +#: ../src/dialogs/clonetiler.cpp:2549 msgid "B" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2542 +#: ../src/dialogs/clonetiler.cpp:2550 msgid "Pick the Blue component of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2549 +#: ../src/dialogs/clonetiler.cpp:2557 msgctxt "Clonetiler color hue" msgid "H" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2550 +#: ../src/dialogs/clonetiler.cpp:2558 msgid "Pick the hue of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2557 +#: ../src/dialogs/clonetiler.cpp:2565 msgctxt "Clonetiler color saturation" msgid "S" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2558 +#: ../src/dialogs/clonetiler.cpp:2566 msgid "Pick the saturation of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2565 +#: ../src/dialogs/clonetiler.cpp:2573 msgctxt "Clonetiler color lightness" msgid "L" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2566 +#: ../src/dialogs/clonetiler.cpp:2574 msgid "Pick the lightness of the color" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2576 +#: ../src/dialogs/clonetiler.cpp:2584 msgid "2. Tweak the picked value:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2586 +#: ../src/dialogs/clonetiler.cpp:2594 msgid "Gamma-correct:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2590 +#: ../src/dialogs/clonetiler.cpp:2598 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2597 +#: ../src/dialogs/clonetiler.cpp:2605 msgid "Randomize:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2601 +#: ../src/dialogs/clonetiler.cpp:2609 msgid "Randomize the picked value by this percentage" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2608 +#: ../src/dialogs/clonetiler.cpp:2616 msgid "Invert:" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2612 +#: ../src/dialogs/clonetiler.cpp:2620 msgid "Invert the picked value" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2618 +#: ../src/dialogs/clonetiler.cpp:2626 msgid "3. Apply the value to the clones':" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2628 +#: ../src/dialogs/clonetiler.cpp:2636 msgid "Presence" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2631 +#: ../src/dialogs/clonetiler.cpp:2639 msgid "" "Each clone is created with the probability determined by the picked value in " "that point" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2638 +#: ../src/dialogs/clonetiler.cpp:2646 msgid "Size" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2641 +#: ../src/dialogs/clonetiler.cpp:2649 msgid "Each clone's size is determined by the picked value in that point" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2651 +#: ../src/dialogs/clonetiler.cpp:2659 msgid "" "Each clone is painted by the picked color (the original must have unset fill " "or stroke)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2661 +#: ../src/dialogs/clonetiler.cpp:2669 msgid "Each clone's opacity is determined by the picked value in that point" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2688 +#: ../src/dialogs/clonetiler.cpp:2696 msgid "How many rows in the tiling" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2708 +#: ../src/dialogs/clonetiler.cpp:2716 msgid "How many columns in the tiling" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2738 +#: ../src/dialogs/clonetiler.cpp:2746 msgid "Width of the rectangle to be filled" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2763 +#: ../src/dialogs/clonetiler.cpp:2771 msgid "Height of the rectangle to be filled" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2778 +#: ../src/dialogs/clonetiler.cpp:2786 msgid "Rows, columns: " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2779 +#: ../src/dialogs/clonetiler.cpp:2787 msgid "Create the specified number of rows and columns" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2788 +#: ../src/dialogs/clonetiler.cpp:2796 msgid "Width, height: " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2789 +#: ../src/dialogs/clonetiler.cpp:2797 msgid "Fill the specified width and height with the tiling" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2805 +#: ../src/dialogs/clonetiler.cpp:2813 msgid "Use saved size and position of the tile" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2808 +#: ../src/dialogs/clonetiler.cpp:2816 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" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2832 +#: ../src/dialogs/clonetiler.cpp:2840 msgid " _Create " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2834 +#: ../src/dialogs/clonetiler.cpp:2842 msgid "Create and tile the clones of the selection" msgstr "" @@ -4495,28 +4534,28 @@ msgstr "" #. 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/dialogs/clonetiler.cpp:2849 +#: ../src/dialogs/clonetiler.cpp:2857 msgid " _Unclump " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2850 +#: ../src/dialogs/clonetiler.cpp:2858 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2856 +#: ../src/dialogs/clonetiler.cpp:2864 msgid " Re_move " msgstr "" -#: ../src/dialogs/clonetiler.cpp:2857 +#: ../src/dialogs/clonetiler.cpp:2865 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "" -#: ../src/dialogs/clonetiler.cpp:2873 +#: ../src/dialogs/clonetiler.cpp:2881 msgid " R_eset " msgstr "" #. TRANSLATORS: "change" is a noun here -#: ../src/dialogs/clonetiler.cpp:2875 +#: ../src/dialogs/clonetiler.cpp:2883 msgid "" "Reset all shifts, scales, rotates, opacity and color changes in the dialog " "to zero" @@ -4594,8 +4633,8 @@ msgstr "" msgid "_Height:" msgstr "" -#: ../src/dialogs/export.cpp:512 ../src/ui/dialog/inkscape-preferences.cpp:836 -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/dialogs/export.cpp:512 ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "dpi" msgstr "" @@ -4756,7 +4795,7 @@ msgid "Search paths, lines, polylines" msgstr "" #: ../src/dialogs/find.cpp:604 ../src/ui/dialog/find.cpp:78 -#: ../src/widgets/toolbox.cpp:2335 +#: ../src/widgets/toolbox.cpp:2340 msgid "Paths" msgstr "" @@ -5066,9 +5105,9 @@ msgstr "" #: ../src/extension/internal/bitmap/raise.cpp:41 #: ../src/extension/internal/bitmap/sample.cpp:40 #: ../src/extension/internal/bluredge.cpp:136 -#: ../src/extension/internal/filter/abc.h:574 ../src/widgets/toolbox.cpp:4377 -#: ../src/widgets/toolbox.cpp:4691 ../src/widgets/toolbox.cpp:5186 -#: ../src/widgets/toolbox.cpp:6248 ../share/extensions/foldablebox.inx.h:9 +#: ../src/extension/internal/filter/abc.h:574 ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:6266 ../share/extensions/foldablebox.inx.h:9 msgid "Width:" msgstr "" @@ -5196,11 +5235,11 @@ msgstr "" msgid "Justify lines" msgstr "" -#: ../src/dialogs/text-edit.cpp:304 ../src/widgets/toolbox.cpp:7737 +#: ../src/dialogs/text-edit.cpp:304 ../src/widgets/toolbox.cpp:7755 msgid "Horizontal text" msgstr "" -#: ../src/dialogs/text-edit.cpp:318 ../src/widgets/toolbox.cpp:7744 +#: ../src/dialogs/text-edit.cpp:318 ../src/widgets/toolbox.cpp:7762 msgid "Vertical text" msgstr "" @@ -5208,15 +5247,15 @@ msgstr "" msgid "Line spacing:" msgstr "" -#: ../src/dialogs/text-edit.cpp:407 ../src/menus-skeleton.h:237 +#: ../src/dialogs/text-edit.cpp:389 ../src/menus-skeleton.h:237 msgid "_Text" msgstr "" -#: ../src/dialogs/text-edit.cpp:454 +#: ../src/dialogs/text-edit.cpp:436 msgid "Set as _default" msgstr "" -#: ../src/dialogs/text-edit.cpp:713 ../src/text-context.cpp:1518 +#: ../src/dialogs/text-edit.cpp:695 ../src/text-context.cpp:1518 msgid "Set text style" msgstr "" @@ -5224,8 +5263,8 @@ msgstr "" #. * text has been entered) to get a preview of the font. Choose #. * some representative characters that users of your locale will be #. * interested in. -#: ../src/dialogs/text-edit.cpp:750 ../src/dialogs/text-edit.cpp:896 -#: ../src/dialogs/text-edit.cpp:949 +#: ../src/dialogs/text-edit.cpp:732 ../src/dialogs/text-edit.cpp:868 +#: ../src/dialogs/text-edit.cpp:921 msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "" @@ -5290,8 +5329,8 @@ msgid "Attribute name" msgstr "" #. TRANSLATORS: "Set" is a verb here -#: ../src/dialogs/xml-tree.cpp:524 ../src/widgets/sp-attribute-widget.cpp:159 -#: ../src/widgets/sp-attribute-widget.cpp:765 +#: ../src/dialogs/xml-tree.cpp:524 ../src/widgets/sp-attribute-widget.cpp:157 +#: ../src/widgets/sp-attribute-widget.cpp:759 msgid "Set attribute" msgstr "" @@ -5346,8 +5385,8 @@ msgid "_Origin X:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:676 -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "X coordinate of grid origin" msgstr "" @@ -5356,8 +5395,8 @@ msgid "O_rigin Y:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:360 ../src/display/canvas-grid.cpp:678 -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Y coordinate of grid origin" msgstr "" @@ -5366,29 +5405,29 @@ msgid "Spacing _Y:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:362 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Base length of z-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 -#: ../src/widgets/toolbox.cpp:3690 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle X:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 msgid "Angle of x-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 -#: ../src/widgets/toolbox.cpp:3769 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle Z:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "Angle of z-axis" msgstr "" @@ -5471,12 +5510,12 @@ msgid "Spacing _X:" msgstr "" #: ../src/display/canvas-grid.cpp:680 -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Distance between vertical grid lines" msgstr "" #: ../src/display/canvas-grid.cpp:682 -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 msgid "Distance between horizontal grid lines" msgstr "" @@ -5490,7 +5529,7 @@ msgstr "" #. TRANSLATORS: undefined target for snapping #: ../src/display/snap-indicator.cpp:70 ../src/display/snap-indicator.cpp:73 -#: ../src/display/snap-indicator.cpp:158 ../src/display/snap-indicator.cpp:161 +#: ../src/display/snap-indicator.cpp:161 ../src/display/snap-indicator.cpp:164 msgid "UNDEFINED" msgstr "" @@ -5587,86 +5626,90 @@ msgid "corner" msgstr "" #: ../src/display/snap-indicator.cpp:145 -msgid "text baseline" +msgid "text anchor" msgstr "" #: ../src/display/snap-indicator.cpp:148 -msgid "constrained angle" +msgid "text baseline" msgstr "" #: ../src/display/snap-indicator.cpp:151 +msgid "constrained angle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:154 msgid "constraint" msgstr "" -#: ../src/display/snap-indicator.cpp:164 +#: ../src/display/snap-indicator.cpp:167 msgid "Bounding box corner" msgstr "" -#: ../src/display/snap-indicator.cpp:167 +#: ../src/display/snap-indicator.cpp:170 msgid "Bounding box midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:170 +#: ../src/display/snap-indicator.cpp:173 msgid "Bounding box side midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:173 ../src/ui/tool/node.cpp:1231 +#: ../src/display/snap-indicator.cpp:176 ../src/ui/tool/node.cpp:1231 msgid "Smooth node" msgstr "" -#: ../src/display/snap-indicator.cpp:176 ../src/ui/tool/node.cpp:1230 +#: ../src/display/snap-indicator.cpp:179 ../src/ui/tool/node.cpp:1230 msgid "Cusp node" msgstr "" -#: ../src/display/snap-indicator.cpp:179 +#: ../src/display/snap-indicator.cpp:182 msgid "Line midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:182 +#: ../src/display/snap-indicator.cpp:185 msgid "Object midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:185 +#: ../src/display/snap-indicator.cpp:188 msgid "Object rotation center" msgstr "" -#: ../src/display/snap-indicator.cpp:189 +#: ../src/display/snap-indicator.cpp:192 msgid "Handle" msgstr "" -#: ../src/display/snap-indicator.cpp:192 +#: ../src/display/snap-indicator.cpp:195 msgid "Path intersection" msgstr "" -#: ../src/display/snap-indicator.cpp:195 +#: ../src/display/snap-indicator.cpp:198 msgid "Guide" msgstr "" -#: ../src/display/snap-indicator.cpp:198 +#: ../src/display/snap-indicator.cpp:201 msgid "Guide origin" msgstr "" -#: ../src/display/snap-indicator.cpp:201 +#: ../src/display/snap-indicator.cpp:204 msgid "Convex hull corner" msgstr "" -#: ../src/display/snap-indicator.cpp:204 +#: ../src/display/snap-indicator.cpp:207 msgid "Quadrant point" msgstr "" -#: ../src/display/snap-indicator.cpp:207 +#: ../src/display/snap-indicator.cpp:210 msgid "Corner" msgstr "" -#: ../src/display/snap-indicator.cpp:210 -msgid "Text baseline" +#: ../src/display/snap-indicator.cpp:213 +msgid "Text anchor" msgstr "" -#: ../src/display/snap-indicator.cpp:213 +#: ../src/display/snap-indicator.cpp:216 msgid "Multiple of grid spacing" msgstr "" -#: ../src/display/snap-indicator.cpp:244 +#: ../src/display/snap-indicator.cpp:247 msgid " to " msgstr "" @@ -5909,7 +5952,7 @@ msgid "" "this extension." msgstr "" -#: ../src/extension/implementation/script.cpp:989 +#: ../src/extension/implementation/script.cpp:990 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 " @@ -5936,7 +5979,7 @@ msgstr "" #: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 #: ../src/extension/internal/filter/color.h:540 #: ../src/extension/internal/filter/experimental.h:355 -#: ../src/widgets/gradient-vector.cpp:825 +#: ../src/widgets/gradient-vector.cpp:824 #: ../share/extensions/printing-marks.inx.h:9 msgid "Offset:" msgstr "" @@ -6131,7 +6174,7 @@ msgstr "" #: ../src/extension/internal/bitmap/cycleColormap.cpp:38 #: ../src/extension/internal/bitmap/spread.cpp:38 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#: ../src/widgets/toolbox.cpp:4783 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount:" msgstr "" @@ -6299,7 +6342,7 @@ msgstr "" #: ../src/extension/internal/bitmap/opacity.cpp:39 #: ../src/ui/dialog/filter-effects-dialog.cpp:2240 -#: ../src/widgets/toolbox.cpp:5778 +#: ../src/widgets/toolbox.cpp:5796 msgid "Opacity:" msgstr "" @@ -6402,9 +6445,9 @@ msgstr "" #: ../src/extension/internal/bitmap/threshold.cpp:39 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 #: ../src/ui/dialog/tracedialog.cpp:420 ../src/ui/dialog/tracedialog.cpp:453 -#: ../src/ui/dialog/tracedialog.cpp:596 ../src/widgets/toolbox.cpp:8521 +#: ../src/ui/dialog/tracedialog.cpp:596 ../src/widgets/toolbox.cpp:8539 msgid "Threshold:" msgstr "" @@ -6648,7 +6691,7 @@ msgstr "" #: ../src/extension/internal/filter/morphology.h:61 #: ../src/extension/internal/filter/shadows.h:76 #: ../src/extension/internal/filter/snow.h:38 -#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 msgid "Filters" msgstr "" @@ -6740,7 +6783,7 @@ msgstr "" #: ../src/extension/internal/filter/abc.h:240 #: ../src/extension/internal/filter/abc.h:378 #: ../src/extension/internal/filter/abc.h:818 -msgid "Lightning color" +msgid "Lighting color" msgstr "" #: ../src/extension/internal/filter/abc.h:311 @@ -6899,7 +6942,7 @@ msgstr "" #: ../src/extension/internal/filter/color.h:616 #: ../src/extension/internal/filter/color.h:784 #: ../src/extension/internal/filter/color.h:797 ../src/filter-enums.cpp:51 -#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:597 msgid "Normal" msgstr "" @@ -7209,7 +7252,7 @@ msgid "Clean-up:" msgstr "" #: ../src/extension/internal/filter/experimental.h:237 -#: ../src/widgets/toolbox.cpp:8348 +#: ../src/widgets/toolbox.cpp:8366 msgid "Length:" msgstr "" @@ -7367,11 +7410,11 @@ msgstr "" #: ../share/extensions/color_randomize.inx.h:6 #: ../share/extensions/dots.inx.h:5 ../share/extensions/dxf_input.inx.h:15 #: ../share/extensions/dxf_outlines.inx.h:9 -#: ../share/extensions/gcodetools_all_in_one.inx.h:33 -#: ../share/extensions/gcodetools_area.inx.h:22 -#: ../share/extensions/gcodetools_engraving.inx.h:16 -#: ../share/extensions/gcodetools_lathe.inx.h:22 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 #: ../share/extensions/generate_voronoi.inx.h:7 #: ../share/extensions/gimp_xcf.inx.h:4 #: ../share/extensions/interp_att_g.inx.h:15 @@ -7509,9 +7552,9 @@ msgid "Render" msgstr "" #: ../src/extension/internal/grid.cpp:211 -#: ../src/ui/dialog/document-properties.cpp:120 -#: ../src/ui/dialog/inkscape-preferences.cpp:1082 -#: ../src/widgets/toolbox.cpp:2415 +#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +#: ../src/widgets/toolbox.cpp:2430 msgid "Grids" msgstr "" @@ -8005,7 +8048,7 @@ msgid "Luminance to Alpha" msgstr "" #. File -#: ../src/filter-enums.cpp:70 ../src/interface.cpp:852 ../src/verbs.cpp:2244 +#: ../src/filter-enums.cpp:70 ../src/interface.cpp:848 ../src/verbs.cpp:2244 #: ../share/extensions/jessyInk_mouseHandler.inx.h:1 #: ../share/extensions/jessyInk_transitions.inx.h:2 msgid "Default" @@ -8057,16 +8100,21 @@ msgid "Wrap" msgstr "" #: ../src/filter-enums.cpp:94 ../src/live_effects/lpe-ruler.cpp:34 -#: ../src/ui/dialog/document-properties.cpp:327 #: ../src/ui/dialog/filter-effects-dialog.cpp:477 -#: ../src/ui/dialog/inkscape-preferences.cpp:267 -#: ../src/ui/dialog/inkscape-preferences.cpp:433 -#: ../src/ui/dialog/inkscape-preferences.cpp:595 -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 -#: ../src/ui/dialog/inkscape-preferences.cpp:1297 +#: ../src/ui/dialog/inkscape-preferences.cpp:268 +#: ../src/ui/dialog/inkscape-preferences.cpp:434 +#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 #: ../src/ui/dialog/input.cpp:607 ../src/ui/dialog/input.cpp:608 #: ../src/ui/dialog/input.cpp:1269 ../src/verbs.cpp:2241 -#: ../src/widgets/stroke-style.cpp:366 ../src/widgets/toolbox.cpp:4153 +#: ../src/widgets/stroke-style.cpp:366 ../src/widgets/toolbox.cpp:4171 +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 #: ../share/extensions/grid_polar.inx.h:18 #: ../share/extensions/guides_creator.inx.h:15 #: ../share/extensions/scour.inx.h:16 @@ -8074,21 +8122,21 @@ msgid "None" msgstr "" #: ../src/filter-enums.cpp:100 ../src/flood-context.cpp:241 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:403 #: ../src/widgets/sp-color-scales.cpp:404 msgid "Red" msgstr "" #: ../src/filter-enums.cpp:101 ../src/flood-context.cpp:242 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:406 #: ../src/widgets/sp-color-scales.cpp:407 msgid "Green" msgstr "" #: ../src/filter-enums.cpp:102 ../src/flood-context.cpp:243 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:409 #: ../src/widgets/sp-color-scales.cpp:410 msgid "Blue" @@ -8126,26 +8174,26 @@ msgstr "" msgid "Visible Colors" msgstr "" -#: ../src/flood-context.cpp:244 ../src/widgets/sp-color-icc-selector.cpp:229 -#: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/flood-context.cpp:244 ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:429 -#: ../src/widgets/sp-color-scales.cpp:430 ../src/widgets/toolbox.cpp:4535 +#: ../src/widgets/sp-color-scales.cpp:430 ../src/widgets/toolbox.cpp:4553 #: ../share/extensions/color_randomize.inx.h:4 msgid "Hue" msgstr "" -#: ../src/flood-context.cpp:245 ../src/ui/dialog/inkscape-preferences.cpp:898 -#: ../src/widgets/sp-color-icc-selector.cpp:229 +#: ../src/flood-context.cpp:245 ../src/ui/dialog/inkscape-preferences.cpp:899 #: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:432 -#: ../src/widgets/sp-color-scales.cpp:433 ../src/widgets/toolbox.cpp:4551 +#: ../src/widgets/sp-color-scales.cpp:433 ../src/widgets/toolbox.cpp:4569 #: ../share/extensions/color_randomize.inx.h:8 msgid "Saturation" msgstr "" -#: ../src/flood-context.cpp:246 ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/flood-context.cpp:246 ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:435 -#: ../src/widgets/sp-color-scales.cpp:436 ../src/widgets/toolbox.cpp:4567 +#: ../src/widgets/sp-color-scales.cpp:436 ../src/widgets/toolbox.cpp:4585 #: ../share/extensions/color_randomize.inx.h:5 msgid "Lightness" msgstr "" @@ -8295,7 +8343,7 @@ msgstr[0] "" msgstr[1] "" #: ../src/gradient-context.cpp:390 ../src/gradient-context.cpp:483 -#: ../src/ui/dialog/swatches.cpp:182 ../src/widgets/gradient-vector.cpp:742 +#: ../src/ui/dialog/swatches.cpp:182 ../src/widgets/gradient-vector.cpp:741 msgid "Add gradient stop" msgstr "" @@ -8307,30 +8355,30 @@ msgstr "" msgid "Create default gradient" msgstr "" -#: ../src/gradient-context.cpp:590 +#: ../src/gradient-context.cpp:592 msgid "Draw around handles to select them" msgstr "" -#: ../src/gradient-context.cpp:699 +#: ../src/gradient-context.cpp:701 msgid "Ctrl: snap gradient angle" msgstr "" -#: ../src/gradient-context.cpp:700 +#: ../src/gradient-context.cpp:702 msgid "Shift: draw gradient around the starting point" msgstr "" -#: ../src/gradient-context.cpp:820 +#: ../src/gradient-context.cpp:822 msgid "Invert gradient" msgstr "" -#: ../src/gradient-context.cpp:937 +#: ../src/gradient-context.cpp:939 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" msgstr[0] "" msgstr[1] "" -#: ../src/gradient-context.cpp:941 +#: ../src/gradient-context.cpp:943 msgid "Select objects on which to create gradient." msgstr "" @@ -8342,7 +8390,7 @@ msgstr "" msgid "Move gradient handle" msgstr "" -#: ../src/gradient-drag.cpp:988 ../src/widgets/gradient-vector.cpp:773 +#: ../src/gradient-drag.cpp:988 ../src/widgets/gradient-vector.cpp:772 msgid "Delete gradient stop" msgstr "" @@ -8399,9 +8447,9 @@ msgid "Unit" msgstr "" #. Add the units menu. -#: ../src/helper/units.cpp:37 ../src/widgets/select-toolbar.cpp:514 -#: ../src/widgets/toolbox.cpp:1597 ../src/widgets/toolbox.cpp:3420 -#: ../src/widgets/toolbox.cpp:6138 ../src/widgets/toolbox.cpp:8540 +#: ../src/helper/units.cpp:37 ../src/widgets/select-toolbar.cpp:521 +#: ../src/widgets/toolbox.cpp:1597 ../src/widgets/toolbox.cpp:3438 +#: ../src/widgets/toolbox.cpp:6156 ../src/widgets/toolbox.cpp:8558 #: ../share/extensions/dxf_outlines.inx.h:10 msgid "Units" msgstr "" @@ -8462,7 +8510,7 @@ msgstr "" msgid "Percent" msgstr "" -#: ../src/helper/units.cpp:42 ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/helper/units.cpp:42 ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "%" msgstr "" @@ -8476,6 +8524,13 @@ msgstr "" #: ../src/helper/units.cpp:43 ../src/ui/widget/selected-style.cpp:298 #: ../share/extensions/dxf_outlines.inx.h:15 ../share/extensions/gears.inx.h:9 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 msgid "mm" msgstr "" @@ -8514,6 +8569,13 @@ msgstr "" #: ../src/helper/units.cpp:46 ../share/extensions/dxf_outlines.inx.h:13 #: ../share/extensions/gears.inx.h:8 +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 msgid "in" msgstr "" @@ -8598,117 +8660,117 @@ msgstr "" #. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu", #. checkitem_toggled, checkitem_update, 0); -#: ../src/interface.cpp:830 +#: ../src/interface.cpp:826 msgid "_Commands Bar" msgstr "" -#: ../src/interface.cpp:830 +#: ../src/interface.cpp:826 msgid "Show or hide the Commands bar (under the menu)" msgstr "" -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:828 msgid "Sn_ap Controls Bar" msgstr "" -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:828 msgid "Show or hide the snapping controls" msgstr "" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:830 msgid "T_ool Controls Bar" msgstr "" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:830 msgid "Show or hide the Tool Controls bar" msgstr "" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:832 msgid "_Toolbox" msgstr "" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:832 msgid "Show or hide the main toolbox (on the left)" msgstr "" -#: ../src/interface.cpp:842 +#: ../src/interface.cpp:838 msgid "_Palette" msgstr "" -#: ../src/interface.cpp:842 +#: ../src/interface.cpp:838 msgid "Show or hide the color palette" msgstr "" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:840 msgid "_Statusbar" msgstr "" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:840 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "" -#: ../src/interface.cpp:852 +#: ../src/interface.cpp:848 msgid "Default interface setup" msgstr "" -#: ../src/interface.cpp:853 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1437 +#: ../src/interface.cpp:849 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1437 #: ../share/extensions/color_custom.inx.h:10 #: ../share/extensions/markers_strokepaint.inx.h:5 msgid "Custom" msgstr "" -#: ../src/interface.cpp:853 +#: ../src/interface.cpp:849 msgid "Set the custom task" msgstr "" -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:850 msgid "Wide" msgstr "" -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:850 msgid "Setup for widescreen work" msgstr "" -#: ../src/interface.cpp:951 +#: ../src/interface.cpp:947 #, c-format msgid "Verb \"%s\" Unknown" msgstr "" -#: ../src/interface.cpp:993 +#: ../src/interface.cpp:989 msgid "Open _Recent" msgstr "" #. TRANSLATORS: #%s is the id of the group e.g. , not a number. -#: ../src/interface.cpp:1098 +#: ../src/interface.cpp:1094 #, c-format msgid "Enter group #%s" msgstr "" -#: ../src/interface.cpp:1109 +#: ../src/interface.cpp:1105 msgid "Go to parent" msgstr "" -#: ../src/interface.cpp:1200 ../src/interface.cpp:1286 -#: ../src/interface.cpp:1389 ../src/ui/widget/selected-style.cpp:469 +#: ../src/interface.cpp:1196 ../src/interface.cpp:1282 +#: ../src/interface.cpp:1385 ../src/ui/widget/selected-style.cpp:469 msgid "Drop color" msgstr "" -#: ../src/interface.cpp:1239 ../src/interface.cpp:1349 +#: ../src/interface.cpp:1235 ../src/interface.cpp:1345 msgid "Drop color on gradient" msgstr "" -#: ../src/interface.cpp:1402 +#: ../src/interface.cpp:1398 msgid "Could not parse SVG data" msgstr "" -#: ../src/interface.cpp:1441 +#: ../src/interface.cpp:1437 msgid "Drop SVG" msgstr "" -#: ../src/interface.cpp:1475 +#: ../src/interface.cpp:1471 msgid "Drop bitmap image" msgstr "" -#: ../src/interface.cpp:1567 +#: ../src/interface.cpp:1563 #, c-format msgid "" "A file named \"%s\" already exists. Do " @@ -8717,7 +8779,7 @@ msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -#: ../src/interface.cpp:1574 ../share/extensions/web-set-att.inx.h:7 +#: ../src/interface.cpp:1570 ../share/extensions/web-set-att.inx.h:7 #: ../share/extensions/web-transmit-att.inx.h:7 msgid "Replace" msgstr "" @@ -8763,12 +8825,12 @@ msgstr "" msgid "Dockbar style to show items on it" msgstr "" -#: ../src/libgdl/gdl-dock-item-grip.c:386 -msgid "Iconify" +#: ../src/libgdl/gdl-dock-item-grip.c:379 +msgid "Iconify this dock" msgstr "" -#: ../src/libgdl/gdl-dock-item-grip.c:388 -msgid "Close" +#: ../src/libgdl/gdl-dock-item-grip.c:381 +msgid "Close this dock" msgstr "" #: ../src/libgdl/gdl-dock-item-grip.c:703 @@ -8781,138 +8843,138 @@ msgid "Dockitem which 'owns' this grip" msgstr "" #. Name -#: ../src/libgdl/gdl-dock-item.c:286 ../src/widgets/toolbox.cpp:7749 -#: ../share/extensions/gcodetools_all_in_one.inx.h:34 +#: ../src/libgdl/gdl-dock-item.c:297 ../src/widgets/toolbox.cpp:7767 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_orientation_points.inx.h:6 msgid "Orientation" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:287 +#: ../src/libgdl/gdl-dock-item.c:298 msgid "Orientation of the docking item" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:302 +#: ../src/libgdl/gdl-dock-item.c:313 msgid "Resizable" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:303 -msgid "If set, the dock item can be resized when docked in a panel" +#: ../src/libgdl/gdl-dock-item.c:314 +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:310 +#: ../src/libgdl/gdl-dock-item.c:321 msgid "Item behavior" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:311 +#: ../src/libgdl/gdl-dock-item.c:322 msgid "" "General behavior for the dock item (i.e. whether it can float, if it's " "locked, etc.)" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:319 ../src/libgdl/gdl-dock-master.c:151 +#: ../src/libgdl/gdl-dock-item.c:330 ../src/libgdl/gdl-dock-master.c:153 msgid "Locked" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:320 +#: ../src/libgdl/gdl-dock-item.c:331 msgid "" "If set, the dock item cannot be dragged around and it doesn't show a grip" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:328 +#: ../src/libgdl/gdl-dock-item.c:339 msgid "Preferred width" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:329 +#: ../src/libgdl/gdl-dock-item.c:340 msgid "Preferred width for the dock item" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:335 +#: ../src/libgdl/gdl-dock-item.c:346 msgid "Preferred height" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:336 +#: ../src/libgdl/gdl-dock-item.c:347 msgid "Preferred height for the dock item" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:615 +#: ../src/libgdl/gdl-dock-item.c:664 #, c-format msgid "" "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " "some other compound dock object." msgstr "" -#: ../src/libgdl/gdl-dock-item.c:622 +#: ../src/libgdl/gdl-dock-item.c:671 #, c-format msgid "" "Attempting to add a widget with type %s to a %s, but it can only contain one " "widget at a time; it already contains a widget of type %s" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:1346 ../src/libgdl/gdl-dock-item.c:1391 +#: ../src/libgdl/gdl-dock-item.c:1392 ../src/libgdl/gdl-dock-item.c:1442 #, c-format msgid "Unsupported docking strategy %s in dock object of type %s" msgstr "" #. UnLock menuitem -#: ../src/libgdl/gdl-dock-item.c:1481 +#: ../src/libgdl/gdl-dock-item.c:1553 msgid "UnLock" msgstr "" #. Hide menuitem. -#: ../src/libgdl/gdl-dock-item.c:1488 +#: ../src/libgdl/gdl-dock-item.c:1560 msgid "Hide" msgstr "" #. Lock menuitem -#: ../src/libgdl/gdl-dock-item.c:1493 +#: ../src/libgdl/gdl-dock-item.c:1565 msgid "Lock" msgstr "" -#: ../src/libgdl/gdl-dock-item.c:1728 +#: ../src/libgdl/gdl-dock-item.c:1829 #, c-format msgid "Attempt to bind an unbound item %p" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:144 ../src/libgdl/gdl-dock.c:183 +#: ../src/libgdl/gdl-dock-master.c:146 ../src/libgdl/gdl-dock.c:183 msgid "Default title" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:145 +#: ../src/libgdl/gdl-dock-master.c:147 msgid "Default title for newly created floating docks" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:152 +#: ../src/libgdl/gdl-dock-master.c:154 msgid "" "If is set to 1, all the dock items bound to the master are locked; if it's " "0, all are unlocked; -1 indicates inconsistency among the items" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:160 ../src/libgdl/gdl-switcher.c:702 +#: ../src/libgdl/gdl-dock-master.c:162 ../src/libgdl/gdl-switcher.c:692 msgid "Switcher Style" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:161 ../src/libgdl/gdl-switcher.c:703 +#: ../src/libgdl/gdl-dock-master.c:163 ../src/libgdl/gdl-switcher.c:693 msgid "Switcher buttons style" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:168 +#: ../src/libgdl/gdl-dock-master.c:170 msgid "Expand direction" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:169 +#: ../src/libgdl/gdl-dock-master.c:171 msgid "" "Allow the master's dock items to expand their container dock objects in the " "given direction" msgstr "" -#: ../src/libgdl/gdl-dock-master.c:805 +#: ../src/libgdl/gdl-dock-master.c:807 #, c-format msgid "" "master %p: unable to add object %p[%s] to the hash. There already is an " "item with that name (%p)." msgstr "" -#: ../src/libgdl/gdl-dock-master.c:978 +#: ../src/libgdl/gdl-dock-master.c:979 #, c-format msgid "" "The new dock controller %p is automatic. Only manual dock objects should be " @@ -8921,7 +8983,7 @@ msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:134 #: ../src/ui/dialog/align-and-distribute.cpp:1034 -#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/document-properties.cpp:116 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429 #: ../src/widgets/desktop-widget.cpp:1725 #: ../share/extensions/voronoi2svg.inx.h:8 @@ -8972,26 +9034,26 @@ msgstr "" msgid "Dock master this dock object is bound to" msgstr "" -#: ../src/libgdl/gdl-dock-object.c:438 +#: ../src/libgdl/gdl-dock-object.c:462 #, c-format msgid "" "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " "hasn't implemented this method" msgstr "" -#: ../src/libgdl/gdl-dock-object.c:568 +#: ../src/libgdl/gdl-dock-object.c:595 #, c-format msgid "" "Dock operation requested in a non-bound object %p. The application might " "crash" msgstr "" -#: ../src/libgdl/gdl-dock-object.c:575 +#: ../src/libgdl/gdl-dock-object.c:602 #, c-format msgid "Cannot dock %p to %p because they belong to different masters" msgstr "" -#: ../src/libgdl/gdl-dock-object.c:617 +#: ../src/libgdl/gdl-dock-object.c:644 #, c-format msgid "" "Attempt to bind to %p an already bound dock object %p (current master: %p)" @@ -9005,87 +9067,87 @@ msgstr "" msgid "Position of the divider in pixels" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:143 +#: ../src/libgdl/gdl-dock-placeholder.c:144 msgid "Sticky" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:144 +#: ../src/libgdl/gdl-dock-placeholder.c:145 msgid "" "Whether the placeholder will stick to its host or move up the hierarchy when " "the host is redocked" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:151 +#: ../src/libgdl/gdl-dock-placeholder.c:152 msgid "Host" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:152 +#: ../src/libgdl/gdl-dock-placeholder.c:153 msgid "The dock object this placeholder is attached to" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:159 +#: ../src/libgdl/gdl-dock-placeholder.c:160 msgid "Next placement" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:160 +#: ../src/libgdl/gdl-dock-placeholder.c:161 msgid "" "The position an item will be docked to our host if a request is made to dock " "to us" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:169 ../src/libgdl/gdl-dock.c:190 -#: ../src/widgets/toolbox.cpp:3359 ../src/widgets/toolbox.cpp:4377 -#: ../src/widgets/toolbox.cpp:4691 ../share/extensions/interp_att_g.inx.h:28 +#: ../src/libgdl/gdl-dock-placeholder.c:170 ../src/libgdl/gdl-dock.c:190 +#: ../src/widgets/toolbox.cpp:3377 ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 ../share/extensions/interp_att_g.inx.h:28 msgid "Width" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:170 +#: ../src/libgdl/gdl-dock-placeholder.c:171 msgid "Width for the widget when it's attached to the placeholder" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:177 ../src/libgdl/gdl-dock.c:198 -#: ../src/widgets/toolbox.cpp:3376 ../share/extensions/interp_att_g.inx.h:7 +#: ../src/libgdl/gdl-dock-placeholder.c:178 ../src/libgdl/gdl-dock.c:198 +#: ../src/widgets/toolbox.cpp:3394 ../share/extensions/interp_att_g.inx.h:7 msgid "Height" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:178 +#: ../src/libgdl/gdl-dock-placeholder.c:179 msgid "Height for the widget when it's attached to the placeholder" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:184 +#: ../src/libgdl/gdl-dock-placeholder.c:185 msgid "Floating Toplevel" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:185 +#: ../src/libgdl/gdl-dock-placeholder.c:186 msgid "Whether the placeholder is standing in for a floating toplevel dock" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:191 +#: ../src/libgdl/gdl-dock-placeholder.c:192 msgid "X-Coordinate" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:192 -msgid "X coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:193 +msgid "X-Coordinate for dock when floating" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:198 +#: ../src/libgdl/gdl-dock-placeholder.c:199 msgid "Y-Coordinate" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:199 -msgid "Y coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:200 +msgid "Y-Coordinate for dock when floating" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:497 +#: ../src/libgdl/gdl-dock-placeholder.c:498 msgid "Attempt to dock a dock object to an unbound placeholder" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:625 +#: ../src/libgdl/gdl-dock-placeholder.c:626 #, c-format msgid "Got a detach signal from an object (%p) who is not our host %p" msgstr "" -#: ../src/libgdl/gdl-dock-placeholder.c:650 +#: ../src/libgdl/gdl-dock-placeholder.c:651 #, c-format msgid "" "Something weird happened while getting the child placement for %p from " @@ -9096,8 +9158,8 @@ msgstr "" msgid "Dockitem which 'owns' this tablabel" msgstr "" -#: ../src/libgdl/gdl-dock.c:175 ../src/ui/dialog/inkscape-preferences.cpp:590 -#: ../src/ui/dialog/inkscape-preferences.cpp:611 +#: ../src/libgdl/gdl-dock.c:175 ../src/ui/dialog/inkscape-preferences.cpp:591 +#: ../src/ui/dialog/inkscape-preferences.cpp:612 msgid "Floating" msgstr "" @@ -9133,7 +9195,7 @@ msgstr "" msgid "Y coordinate for a floating dock" msgstr "" -#: ../src/libgdl/gdl-dock.c:501 +#: ../src/libgdl/gdl-dock.c:486 #, c-format msgid "Dock #%d" msgstr "" @@ -9847,11 +9909,11 @@ msgstr "" msgid "Both" msgstr "" -#: ../src/live_effects/lpe-ruler.cpp:35 ../src/widgets/toolbox.cpp:5645 +#: ../src/live_effects/lpe-ruler.cpp:35 ../src/widgets/toolbox.cpp:5663 msgid "Start" msgstr "" -#: ../src/live_effects/lpe-ruler.cpp:36 ../src/widgets/toolbox.cpp:5658 +#: ../src/live_effects/lpe-ruler.cpp:36 ../src/widgets/toolbox.cpp:5676 msgid "End" msgstr "" @@ -10942,7 +11004,7 @@ msgstr "" msgid "Unique URI to a related document" msgstr "" -#: ../src/rdf.cpp:263 ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/rdf.cpp:263 ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Language:" msgstr "" @@ -11106,7 +11168,7 @@ msgstr "" #: ../src/selection-chemistry.cpp:328 ../src/text-context.cpp:1026 #: ../src/ui/dialog/swatches.cpp:204 ../src/ui/dialog/swatches.cpp:267 -#: ../src/widgets/toolbox.cpp:1385 ../src/widgets/toolbox.cpp:6213 +#: ../src/widgets/toolbox.cpp:1385 ../src/widgets/toolbox.cpp:6231 msgid "Delete" msgstr "" @@ -11460,8 +11522,8 @@ msgstr "" #. Ellipse #: ../src/selection-describer.cpp:48 ../src/selection-describer.cpp:73 -#: ../src/ui/dialog/inkscape-preferences.cpp:509 ../src/verbs.cpp:2514 -#: ../src/widgets/toolbox.cpp:4156 +#: ../src/ui/dialog/inkscape-preferences.cpp:510 ../src/verbs.cpp:2514 +#: ../src/widgets/toolbox.cpp:4174 msgid "Ellipse" msgstr "" @@ -11477,7 +11539,7 @@ msgstr "" msgid "Path" msgstr "" -#: ../src/selection-describer.cpp:60 ../src/widgets/toolbox.cpp:2997 +#: ../src/selection-describer.cpp:60 ../src/widgets/toolbox.cpp:3015 msgid "Polygon" msgstr "" @@ -11487,13 +11549,13 @@ msgstr "" #. Rectangle #: ../src/selection-describer.cpp:64 -#: ../src/ui/dialog/inkscape-preferences.cpp:499 ../src/verbs.cpp:2510 +#: ../src/ui/dialog/inkscape-preferences.cpp:500 ../src/verbs.cpp:2510 msgid "Rectangle" msgstr "" #. 3D box #: ../src/selection-describer.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:504 ../src/verbs.cpp:2512 +#: ../src/ui/dialog/inkscape-preferences.cpp:505 ../src/verbs.cpp:2512 msgid "3D Box" msgstr "" @@ -11503,7 +11565,7 @@ msgstr "" #. this->AddNewObjectsStyle(_page_lpetool, "/tools/lpetool"); #. Text #: ../src/selection-describer.cpp:68 -#: ../src/ui/dialog/inkscape-preferences.cpp:558 ../src/verbs.cpp:2526 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 ../src/verbs.cpp:2526 #: ../share/extensions/lorem_ipsum.inx.h:7 #: ../share/extensions/replace_font.inx.h:10 ../share/extensions/split.inx.h:6 #: ../share/extensions/text_braille.inx.h:2 @@ -11524,19 +11586,21 @@ msgid "Clone" msgstr "" #: ../src/selection-describer.cpp:75 +#: ../share/extensions/gcodetools_lathe.inx.h:31 msgid "Offset path" msgstr "" #. Spiral #: ../src/selection-describer.cpp:77 -#: ../src/ui/dialog/inkscape-preferences.cpp:517 ../src/verbs.cpp:2518 +#: ../src/ui/dialog/inkscape-preferences.cpp:518 ../src/verbs.cpp:2518 +#: ../share/extensions/gcodetools_area.inx.h:45 msgid "Spiral" msgstr "" #. Star #: ../src/selection-describer.cpp:79 -#: ../src/ui/dialog/inkscape-preferences.cpp:513 ../src/verbs.cpp:2516 -#: ../src/widgets/toolbox.cpp:3004 +#: ../src/ui/dialog/inkscape-preferences.cpp:514 ../src/verbs.cpp:2516 +#: ../src/widgets/toolbox.cpp:3022 msgid "Star" msgstr "" @@ -11787,16 +11851,16 @@ msgstr "" msgid "at %d degrees, through (%s,%s)" msgstr "" -#: ../src/sp-image.cpp:1132 +#: ../src/sp-image.cpp:1133 msgid "embedded" msgstr "" -#: ../src/sp-image.cpp:1140 +#: ../src/sp-image.cpp:1141 #, c-format msgid "Image with bad reference: %s" msgstr "" -#: ../src/sp-image.cpp:1141 +#: ../src/sp-image.cpp:1142 #, c-format msgid "Image %d × %d: %s" msgstr "" @@ -12119,11 +12183,11 @@ msgstr "" msgid "Nothing selected! Select objects to spray." msgstr "" -#: ../src/spray-context.cpp:781 ../src/widgets/toolbox.cpp:4741 +#: ../src/spray-context.cpp:781 ../src/widgets/toolbox.cpp:4759 msgid "Spray with copies" msgstr "" -#: ../src/spray-context.cpp:785 ../src/widgets/toolbox.cpp:4748 +#: ../src/spray-context.cpp:785 ../src/widgets/toolbox.cpp:4766 msgid "Spray with clones" msgstr "" @@ -12842,12 +12906,12 @@ msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:512 #: ../src/ui/dialog/align-and-distribute.cpp:894 -#: ../src/widgets/toolbox.cpp:8377 +#: ../src/widgets/toolbox.cpp:8395 msgid "Remove overlaps" msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:543 -#: ../src/widgets/toolbox.cpp:8170 +#: ../src/widgets/toolbox.cpp:8188 msgid "Arrange connector network" msgstr "" @@ -12876,7 +12940,7 @@ msgid "Rearrange" msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:895 -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2332 msgid "Nodes" msgstr "" @@ -12977,7 +13041,7 @@ msgid "Distribute baselines of texts vertically" msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:986 -#: ../src/widgets/toolbox.cpp:8339 +#: ../src/widgets/toolbox.cpp:8357 msgid "Nicely arrange selected connector network" msgstr "" @@ -13064,7 +13128,7 @@ msgstr "" #. #. ----------- #: ../src/ui/dialog/calligraphic-profile-rename.cpp:52 -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +#: ../src/ui/dialog/inkscape-preferences.cpp:1243 msgid "Save" msgstr "" @@ -13078,27 +13142,27 @@ msgstr "" msgid "Change color definition" msgstr "" -#: ../src/ui/dialog/color-item.cpp:699 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove stroke color" msgstr "" -#: ../src/ui/dialog/color-item.cpp:699 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove fill color" msgstr "" -#: ../src/ui/dialog/color-item.cpp:704 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set stroke color to none" msgstr "" -#: ../src/ui/dialog/color-item.cpp:704 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set fill color to none" msgstr "" -#: ../src/ui/dialog/color-item.cpp:720 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set stroke color from swatch" msgstr "" -#: ../src/ui/dialog/color-item.cpp:720 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set fill color from swatch" msgstr "" @@ -13131,344 +13195,340 @@ msgid "License" msgstr "" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "Show page _border" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "If set, rectangular page border is shown" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "Border on _top of drawing" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "If set, border is always on top of the drawing" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "_Show border shadow" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "If set, page border shows a shadow on its right and lower side" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Back_ground:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Background color" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "" "Color and transparency of the page background (also used for bitmap export)" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Border _color:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Page border color" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Color of the page border" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:98 +#: ../src/ui/dialog/document-properties.cpp:96 msgid "Default _units:" msgstr "" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show _guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show or hide guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:103 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "_Snap guides while dragging" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:103 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "" "While dragging a guide, snap to object nodes or bounding box corners ('Snap " "to nodes' or 'snap to bounding box corners' must be enabled; only a small " "part of the guide near the cursor will snap)" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guide co_lor:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guideline color" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Color of guidelines" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "_Highlight color:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Highlighted guideline color" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:106 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Color of a guideline when it is under mouse" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:107 msgctxt "Grid" msgid "_New" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:107 msgid "Create new grid." msgstr "" -#: ../src/ui/dialog/document-properties.cpp:110 +#: ../src/ui/dialog/document-properties.cpp:108 msgctxt "Grid" msgid "_Remove" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:110 +#: ../src/ui/dialog/document-properties.cpp:108 msgid "Remove selected grid." msgstr "" -#: ../src/ui/dialog/document-properties.cpp:119 -#: ../src/widgets/toolbox.cpp:2424 +#: ../src/ui/dialog/document-properties.cpp:117 +#: ../src/widgets/toolbox.cpp:2439 msgid "Guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:121 ../src/verbs.cpp:2597 +#: ../src/ui/dialog/document-properties.cpp:119 ../src/verbs.cpp:2597 msgid "Snap" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Color Management" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "Scripting" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:221 +#: ../src/ui/dialog/document-properties.cpp:219 msgid "General" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:223 +#: ../src/ui/dialog/document-properties.cpp:221 msgid "Border" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:225 +#: ../src/ui/dialog/document-properties.cpp:223 msgid "Page Size" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:253 +#: ../src/ui/dialog/document-properties.cpp:251 msgid "Guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap _distance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap only when _closer than:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:272 -#: ../src/ui/dialog/document-properties.cpp:278 -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:270 +#: ../src/ui/dialog/document-properties.cpp:276 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Always snap" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:273 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Snapping distance, in screen pixels, for snapping to objects" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:273 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Always snap to objects, regardless of their distance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:274 +#: ../src/ui/dialog/document-properties.cpp:272 msgid "" "If set, objects only snap to another object when it's within the range " "specified below" msgstr "" #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap d_istance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap only when c_loser than:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:279 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Snapping distance, in screen pixels, for snapping to grid" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:279 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Always snap to grids, regardless of the distance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:280 +#: ../src/ui/dialog/document-properties.cpp:278 msgid "" "If set, objects only snap to a grid line when it's within the range " "specified below" msgstr "" #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap dist_ance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap only when close_r than:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:285 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Snapping distance, in screen pixels, for snapping to guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:285 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Always snap to guides, regardless of the distance" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:286 +#: ../src/ui/dialog/document-properties.cpp:284 msgid "" "If set, objects only snap to a guide when it's within the range specified " "below" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:290 +#: ../src/ui/dialog/document-properties.cpp:288 msgid "Snap to objects" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:292 +#: ../src/ui/dialog/document-properties.cpp:290 msgid "Snap to grids" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:294 +#: ../src/ui/dialog/document-properties.cpp:292 msgid "Snap to guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:323 -msgid "(invalid UTF-8 string)" -msgstr "" - #. TODO check if this next line was sometimes needed. It being there caused an assertion. #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:432 ../src/verbs.cpp:2763 +#: ../src/ui/dialog/document-properties.cpp:406 ../src/verbs.cpp:2763 msgid "Link Color Profile" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:525 +#: ../src/ui/dialog/document-properties.cpp:499 msgid "Remove linked color profile" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:539 +#: ../src/ui/dialog/document-properties.cpp:513 msgid "Linked Color Profiles:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:541 +#: ../src/ui/dialog/document-properties.cpp:515 msgid "Available Color Profiles:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:543 +#: ../src/ui/dialog/document-properties.cpp:517 msgid "Link Profile" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:574 +#: ../src/ui/dialog/document-properties.cpp:548 msgid "Profile Name" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:607 +#: ../src/ui/dialog/document-properties.cpp:581 msgid "External scripts" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:608 +#: ../src/ui/dialog/document-properties.cpp:582 msgid "Embedded scripts" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:614 +#: ../src/ui/dialog/document-properties.cpp:588 msgid "External script files:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:616 +#: ../src/ui/dialog/document-properties.cpp:590 msgid "Add" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:639 +#: ../src/ui/dialog/document-properties.cpp:613 msgid "Filename" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:648 +#: ../src/ui/dialog/document-properties.cpp:622 msgid "Embedded script files:" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:650 +#: ../src/ui/dialog/document-properties.cpp:624 msgid "New" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:672 +#: ../src/ui/dialog/document-properties.cpp:646 msgid "Script id" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:678 +#: ../src/ui/dialog/document-properties.cpp:652 msgid "Content:" msgstr "" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:741 +#: ../src/ui/dialog/document-properties.cpp:715 msgid "Add external script..." msgstr "" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:758 +#: ../src/ui/dialog/document-properties.cpp:732 msgid "Add embedded script..." msgstr "" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:788 +#: ../src/ui/dialog/document-properties.cpp:762 msgid "Remove external script" msgstr "" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:820 +#: ../src/ui/dialog/document-properties.cpp:794 msgid "Remove embedded script" msgstr "" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:903 +#: ../src/ui/dialog/document-properties.cpp:877 msgid "Edit embedded script" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:988 +#: ../src/ui/dialog/document-properties.cpp:962 msgid "Creation" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:989 +#: ../src/ui/dialog/document-properties.cpp:963 msgid "Defined grids" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:1200 +#: ../src/ui/dialog/document-properties.cpp:1174 msgid "Remove grid" msgstr "" @@ -13483,14 +13543,16 @@ msgstr "" #: ../share/extensions/draw_from_triangle.inx.h:20 #: ../share/extensions/dxf_input.inx.h:11 #: ../share/extensions/dxf_outlines.inx.h:8 -#: ../share/extensions/gcodetools_all_in_one.inx.h:25 -#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:28 #: ../share/extensions/gcodetools_check_for_updates.inx.h:5 -#: ../share/extensions/gcodetools_dxf_points.inx.h:13 -#: ../share/extensions/gcodetools_engraving.inx.h:11 -#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:20 #: ../share/extensions/gcodetools_orientation_points.inx.h:5 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 #: ../share/extensions/gcodetools_tools_library.inx.h:3 #: ../share/extensions/generate_voronoi.inx.h:6 #: ../share/extensions/gimp_xcf.inx.h:3 @@ -13874,8 +13936,8 @@ msgid "Height of filter effects region" msgstr "" #: ../src/ui/dialog/filter-effects-dialog.cpp:2190 -#: ../src/widgets/toolbox.cpp:4125 ../src/widgets/toolbox.cpp:4503 -#: ../src/widgets/toolbox.cpp:4761 ../src/widgets/toolbox.cpp:6226 +#: ../src/widgets/toolbox.cpp:4143 ../src/widgets/toolbox.cpp:4521 +#: ../src/widgets/toolbox.cpp:4779 ../src/widgets/toolbox.cpp:6244 #: ../share/extensions/extrude.inx.h:4 ../share/extensions/triangle.inx.h:9 msgid "Mode:" msgstr "" @@ -15003,8 +15065,8 @@ msgstr "" msgid "_X:" msgstr "" -#: ../src/ui/dialog/guides.cpp:44 ../src/widgets/sp-color-icc-selector.cpp:217 -#: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/ui/dialog/guides.cpp:44 ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:462 msgid "_Y:" msgstr "" @@ -15057,596 +15119,596 @@ msgstr "" msgid "Selection only or whole document" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:177 +#: ../src/ui/dialog/inkscape-preferences.cpp:178 msgid "Mouse" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 msgid "Grab sensitivity:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 -#: ../src/ui/dialog/inkscape-preferences.cpp:182 -#: ../src/ui/dialog/inkscape-preferences.cpp:198 -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 msgid "pixels" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:181 msgid "" "How close on the screen you need to be to an object to be able to grab it " "with mouse (in screen pixels)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:182 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 msgid "Click/drag threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:184 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:185 +#: ../src/ui/dialog/inkscape-preferences.cpp:186 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:187 +#: ../src/ui/dialog/inkscape-preferences.cpp:188 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 " "mouse)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:189 +#: ../src/ui/dialog/inkscape-preferences.cpp:190 msgid "Switch tool based on tablet device (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:192 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:196 +#: ../src/ui/dialog/inkscape-preferences.cpp:197 msgid "Scrolling" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:198 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 msgid "Mouse wheel scrolls by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:200 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:200 +#: ../src/ui/dialog/inkscape-preferences.cpp:201 msgid "Ctrl+arrows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 msgid "Scroll by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:204 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:205 +#: ../src/ui/dialog/inkscape-preferences.cpp:206 msgid "Acceleration:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:206 +#: ../src/ui/dialog/inkscape-preferences.cpp:207 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:207 +#: ../src/ui/dialog/inkscape-preferences.cpp:208 msgid "Autoscrolling" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:209 +#: ../src/ui/dialog/inkscape-preferences.cpp:210 msgid "Speed:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:210 +#: ../src/ui/dialog/inkscape-preferences.cpp:211 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:213 +#: ../src/ui/dialog/inkscape-preferences.cpp:214 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" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:214 +#: ../src/ui/dialog/inkscape-preferences.cpp:215 msgid "Left mouse button pans when Space is pressed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:216 +#: ../src/ui/dialog/inkscape-preferences.cpp:217 msgid "" "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)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:217 +#: ../src/ui/dialog/inkscape-preferences.cpp:218 msgid "Mouse wheel zooms by default" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:219 +#: ../src/ui/dialog/inkscape-preferences.cpp:220 msgid "" "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when " "off, it zooms with Ctrl and scrolls without Ctrl" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:225 +#: ../src/ui/dialog/inkscape-preferences.cpp:226 msgid "Enable snap indicator" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:227 +#: ../src/ui/dialog/inkscape-preferences.cpp:228 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:230 +#: ../src/ui/dialog/inkscape-preferences.cpp:231 msgid "Delay (in ms):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:231 +#: ../src/ui/dialog/inkscape-preferences.cpp:232 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 "" -#: ../src/ui/dialog/inkscape-preferences.cpp:233 +#: ../src/ui/dialog/inkscape-preferences.cpp:234 msgid "Only snap the node closest to the pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:235 +#: ../src/ui/dialog/inkscape-preferences.cpp:236 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:238 +#: ../src/ui/dialog/inkscape-preferences.cpp:239 msgid "Weight factor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:239 +#: ../src/ui/dialog/inkscape-preferences.cpp:240 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 " "initially the closest to the pointer (when set to 1)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:241 +#: ../src/ui/dialog/inkscape-preferences.cpp:242 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:243 +#: ../src/ui/dialog/inkscape-preferences.cpp:244 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 " "constraint line" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:245 +#: ../src/ui/dialog/inkscape-preferences.cpp:246 msgid "Snapping" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:250 +#: ../src/ui/dialog/inkscape-preferences.cpp:251 msgid "Steps" msgstr "" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:254 +#: ../src/ui/dialog/inkscape-preferences.cpp:255 msgid "Arrow keys move by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:255 +#: ../src/ui/dialog/inkscape-preferences.cpp:256 msgid "" "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:258 +#: ../src/ui/dialog/inkscape-preferences.cpp:259 msgid "> and < scale by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:259 +#: ../src/ui/dialog/inkscape-preferences.cpp:260 msgid "Pressing > or < scales selection up or down by this increment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:261 +#: ../src/ui/dialog/inkscape-preferences.cpp:262 msgid "Inset/Outset by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:262 +#: ../src/ui/dialog/inkscape-preferences.cpp:263 msgid "Inset and Outset commands displace the path by this distance" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:263 +#: ../src/ui/dialog/inkscape-preferences.cpp:264 msgid "Compass-like display of angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:265 +#: ../src/ui/dialog/inkscape-preferences.cpp:266 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 " "counterclockwise" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "Rotation snaps every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "degrees" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:272 +#: ../src/ui/dialog/inkscape-preferences.cpp:273 msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "Relative snapping of guideline angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:275 +#: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Zoom in/out by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:278 +#: ../src/ui/dialog/inkscape-preferences.cpp:279 msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:284 +#: ../src/ui/dialog/inkscape-preferences.cpp:285 msgid "Show selection cue" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:285 +#: ../src/ui/dialog/inkscape-preferences.cpp:286 msgid "" "Whether selected objects display a selection cue (the same as in selector)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:291 +#: ../src/ui/dialog/inkscape-preferences.cpp:292 msgid "Enable gradient editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:292 +#: ../src/ui/dialog/inkscape-preferences.cpp:293 msgid "Whether selected objects display gradient editing controls" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:297 +#: ../src/ui/dialog/inkscape-preferences.cpp:298 msgid "Conversion to guides uses edges instead of bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 +#: ../src/ui/dialog/inkscape-preferences.cpp:299 msgid "" "Converting an object to guides places these along the object's true edges " "(imitating the object's shape), not along the bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "Ctrl+click dot size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "times current stroke width" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 +#: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:321 +#: ../src/ui/dialog/inkscape-preferences.cpp:322 msgid "No objects selected to take the style from." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:330 +#: ../src/ui/dialog/inkscape-preferences.cpp:331 msgid "" "More than one object selected. Cannot take style from multiple " "objects." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Style of new objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Last used style" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:367 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Apply the style you last set on an object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "This tool's own style:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "" "Each tool may store its own style to apply to the newly created objects. Use " "the button below to set it." msgstr "" #. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:380 +#: ../src/ui/dialog/inkscape-preferences.cpp:381 msgid "Take from selection" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:385 +#: ../src/ui/dialog/inkscape-preferences.cpp:386 msgid "This tool's style of new objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:392 +#: ../src/ui/dialog/inkscape-preferences.cpp:393 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:397 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 msgid "Tools" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:400 +#: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Bounding box to use" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:401 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Visual bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:403 +#: ../src/ui/dialog/inkscape-preferences.cpp:404 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Geometric bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:406 +#: ../src/ui/dialog/inkscape-preferences.cpp:407 msgid "This bounding box includes only the bare path" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:408 +#: ../src/ui/dialog/inkscape-preferences.cpp:409 msgid "Conversion to guides" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:409 +#: ../src/ui/dialog/inkscape-preferences.cpp:410 msgid "Keep objects after conversion to guides" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../src/ui/dialog/inkscape-preferences.cpp:412 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:412 +#: ../src/ui/dialog/inkscape-preferences.cpp:413 msgid "Treat groups as a single object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:414 +#: ../src/ui/dialog/inkscape-preferences.cpp:415 msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/ui/dialog/inkscape-preferences.cpp:417 msgid "Average all sketches" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:417 +#: ../src/ui/dialog/inkscape-preferences.cpp:418 msgid "Width is in absolute units" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:418 +#: ../src/ui/dialog/inkscape-preferences.cpp:419 msgid "Select new path" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:419 +#: ../src/ui/dialog/inkscape-preferences.cpp:420 msgid "Don't attach connectors to text objects" msgstr "" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:423 msgid "Selector" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:425 +#: ../src/ui/dialog/inkscape-preferences.cpp:426 msgid "When transforming, show" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:426 +#: ../src/ui/dialog/inkscape-preferences.cpp:427 msgid "Objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:428 +#: ../src/ui/dialog/inkscape-preferences.cpp:429 msgid "Show the actual objects when moving or transforming" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:429 +#: ../src/ui/dialog/inkscape-preferences.cpp:430 msgid "Box outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:431 +#: ../src/ui/dialog/inkscape-preferences.cpp:432 msgid "Show only a box outline of the objects when moving or transforming" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:432 +#: ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Per-object selection cue" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:435 +#: ../src/ui/dialog/inkscape-preferences.cpp:436 msgid "No per-object selection indication" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:436 +#: ../src/ui/dialog/inkscape-preferences.cpp:437 msgid "Mark" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:438 +#: ../src/ui/dialog/inkscape-preferences.cpp:439 msgid "Each selected object has a diamond mark in the top left corner" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:439 +#: ../src/ui/dialog/inkscape-preferences.cpp:440 msgid "Box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:441 +#: ../src/ui/dialog/inkscape-preferences.cpp:442 msgid "Each selected object displays its bounding box" msgstr "" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:444 +#: ../src/ui/dialog/inkscape-preferences.cpp:445 msgid "Node" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:447 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 msgid "Path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:448 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "Path outline color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:449 +#: ../src/ui/dialog/inkscape-preferences.cpp:450 msgid "Selects the color used for showing the path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:450 +#: ../src/ui/dialog/inkscape-preferences.cpp:451 msgid "Always show outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 +#: ../src/ui/dialog/inkscape-preferences.cpp:452 msgid "Show outlines for all paths, not only invisible paths" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:452 +#: ../src/ui/dialog/inkscape-preferences.cpp:453 msgid "Update outline when dragging nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:454 msgid "" "Update the outline when dragging or transforming nodes; if this is off, the " "outline will only update when completing a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:454 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "Update paths when dragging nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:455 +#: ../src/ui/dialog/inkscape-preferences.cpp:456 msgid "" "Update paths when dragging or transforming nodes; if this is off, paths will " "only be updated when completing a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:457 msgid "Show path direction on outlines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 msgid "" "Visualize the direction of selected paths by drawing small arrows in the " "middle of each outline segment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:458 +#: ../src/ui/dialog/inkscape-preferences.cpp:459 msgid "Show temporary path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:459 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 msgid "When hovering over a path, briefly flash its outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:461 msgid "Show temporary outline for selected paths" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:461 +#: ../src/ui/dialog/inkscape-preferences.cpp:462 msgid "Show temporary outline even when a path is selected for editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "Flash time:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 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 " "path" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:464 +#: ../src/ui/dialog/inkscape-preferences.cpp:465 msgid "Editing preferences" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:465 +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Show transform handles for single nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:466 +#: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "Show transform handles even when only a single node is selected" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:467 +#: ../src/ui/dialog/inkscape-preferences.cpp:468 msgid "Deleting nodes preserves shape" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:468 +#: ../src/ui/dialog/inkscape-preferences.cpp:469 msgid "" "Move handles next to deleted nodes to resemble original shape; hold Ctrl to " "get the other behavior" msgstr "" #. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:471 ../src/verbs.cpp:2506 +#: ../src/ui/dialog/inkscape-preferences.cpp:472 ../src/verbs.cpp:2506 msgid "Tweak" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:472 +#: ../src/ui/dialog/inkscape-preferences.cpp:473 msgid "Object paint style" msgstr "" #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:477 ../src/verbs.cpp:2508 +#: ../src/ui/dialog/inkscape-preferences.cpp:478 ../src/verbs.cpp:2508 msgid "Spray" msgstr "" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:482 ../src/verbs.cpp:2530 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 ../src/verbs.cpp:2530 #: ../src/widgets/desktop-widget.cpp:493 msgid "Zoom" msgstr "" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:487 ../src/verbs.cpp:2532 +#: ../src/ui/dialog/inkscape-preferences.cpp:488 ../src/verbs.cpp:2532 #: ../share/extensions/measure.inx.h:6 msgid "Measure" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 +#: ../src/ui/dialog/inkscape-preferences.cpp:490 msgid "Ignore first and last points" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:490 +#: ../src/ui/dialog/inkscape-preferences.cpp:491 msgid "" "The start and end of the measurement tool's control line will not be " "considered for calculating lengths. Only lengths between actual curve " @@ -15654,252 +15716,252 @@ msgid "" msgstr "" #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:493 +#: ../src/ui/dialog/inkscape-preferences.cpp:494 msgid "Shapes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:526 msgid "Sketch mode" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:528 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" msgstr "" #. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:531 #: ../src/ui/dialog/input.cpp:1184 ../src/verbs.cpp:2522 msgid "Pen" msgstr "" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:536 ../src/verbs.cpp:2524 +#: ../src/ui/dialog/inkscape-preferences.cpp:537 ../src/verbs.cpp:2524 msgid "Calligraphy" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 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" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "" "If on, each newly created object will be selected (deselecting previous " "selection)" msgstr "" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:544 ../src/verbs.cpp:2538 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 ../src/verbs.cpp:2538 msgid "Paint Bucket" msgstr "" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:549 ../src/verbs.cpp:2542 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 ../src/verbs.cpp:2542 msgid "Eraser" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 +#: ../src/ui/dialog/inkscape-preferences.cpp:564 msgid "Show font samples in the drop-down list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:564 +#: ../src/ui/dialog/inkscape-preferences.cpp:565 msgid "" "Show font samples alongside font names in the drop-down list in Text bar" msgstr "" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:569 ../src/verbs.cpp:2528 +#: ../src/ui/dialog/inkscape-preferences.cpp:570 ../src/verbs.cpp:2528 msgid "Gradient" msgstr "" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:573 ../src/verbs.cpp:2536 +#: ../src/ui/dialog/inkscape-preferences.cpp:574 ../src/verbs.cpp:2536 msgid "Connector" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:576 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "If on, connector attachment points will not be shown for text objects" msgstr "" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:578 ../src/verbs.cpp:2534 +#: ../src/ui/dialog/inkscape-preferences.cpp:579 ../src/verbs.cpp:2534 msgid "Dropper" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:585 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Save and restore window geometry for each document" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:586 +#: ../src/ui/dialog/inkscape-preferences.cpp:587 msgid "Remember and use last window's geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:587 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Don't save window geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:589 -#: ../src/ui/dialog/inkscape-preferences.cpp:609 +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +#: ../src/ui/dialog/inkscape-preferences.cpp:610 msgid "Dockable" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:592 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Dialogs are hidden in taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:593 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Zoom when window is resized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:594 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Show close button on dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:597 +#: ../src/ui/dialog/inkscape-preferences.cpp:598 msgid "Aggressive" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:600 msgid "Saving window geometry (size and position)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:601 +#: ../src/ui/dialog/inkscape-preferences.cpp:602 msgid "Let the window manager determine placement of all windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#: ../src/ui/dialog/inkscape-preferences.cpp:604 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:606 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 +#: ../src/ui/dialog/inkscape-preferences.cpp:608 msgid "Dialog behavior (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:614 +#: ../src/ui/dialog/inkscape-preferences.cpp:615 msgid "Dialogs on top:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:617 +#: ../src/ui/dialog/inkscape-preferences.cpp:618 msgid "Dialogs are treated as regular windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:619 +#: ../src/ui/dialog/inkscape-preferences.cpp:620 msgid "Dialogs stay on top of document windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Same as Normal but may work better with some window managers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:625 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "Dialog Transparency" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 +#: ../src/ui/dialog/inkscape-preferences.cpp:628 msgid "Opacity when focused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "Opacity when unfocused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:632 msgid "Time of opacity change animation:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "Miscellaneous" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:638 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 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 " "above the right scrollbar)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Whether dialog windows have a close button (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:643 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 msgid "Windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:648 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 msgid "Move in parallel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 +#: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Stay unmoved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgid "Move according to transform" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:654 +#: ../src/ui/dialog/inkscape-preferences.cpp:655 msgid "Are unlinked" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 +#: ../src/ui/dialog/inkscape-preferences.cpp:657 msgid "Are deleted" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:659 +#: ../src/ui/dialog/inkscape-preferences.cpp:660 msgid "Moving original: clones and linked offsets" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:662 msgid "Clones are translated by the same vector as their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:663 +#: ../src/ui/dialog/inkscape-preferences.cpp:664 msgid "Clones preserve their positions when their original is moved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 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" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "Deleting original: clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Orphaned clones are converted to regular objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:670 +#: ../src/ui/dialog/inkscape-preferences.cpp:671 msgid "Orphaned clones are deleted along with their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 +#: ../src/ui/dialog/inkscape-preferences.cpp:673 msgid "Duplicating original+clones/linked offset" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "Relink duplicated clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:677 msgid "" "When duplicating a selection containing both a clone and its original " "(possibly in groups), relink the duplicated clone to the duplicated original " @@ -15907,974 +15969,974 @@ msgid "" msgstr "" #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:685 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:687 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:688 msgid "Remove clippath/mask object after applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:692 msgid "Before applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Do not group clipped/masked objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Enclose every clipped/masked object in its own group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Put all clipped/masked objects into one group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Apply clippath/mask to every object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgid "Apply clippath/mask to groups containing single object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:704 +#: ../src/ui/dialog/inkscape-preferences.cpp:705 msgid "Apply clippath/mask to group containing all objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "After releasing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 +#: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "Ungroup automatically created groups" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "Ungroup groups created when setting clip/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:713 msgid "Clippaths and masks" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:717 -#: ../src/widgets/select-toolbar.cpp:554 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/widgets/select-toolbar.cpp:561 msgid "Scale stroke width" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/ui/dialog/inkscape-preferences.cpp:719 msgid "Scale rounded corners in rectangles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:719 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Transform gradients" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:720 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 msgid "Transform patterns" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "Optimized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/ui/dialog/inkscape-preferences.cpp:723 msgid "Preserved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 -#: ../src/widgets/select-toolbar.cpp:555 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 +#: ../src/widgets/select-toolbar.cpp:562 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:727 -#: ../src/widgets/select-toolbar.cpp:566 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 +#: ../src/widgets/select-toolbar.cpp:573 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:729 -#: ../src/widgets/select-toolbar.cpp:577 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/widgets/select-toolbar.cpp:584 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:731 -#: ../src/widgets/select-toolbar.cpp:588 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/widgets/select-toolbar.cpp:595 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/ui/dialog/inkscape-preferences.cpp:733 msgid "Store transformation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:734 +#: ../src/ui/dialog/inkscape-preferences.cpp:735 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:737 msgid "Always store transformation as a transform= attribute on objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgid "Transforms" msgstr "" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Best quality (slowest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "Better quality (slower)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Average quality" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:750 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 +#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Lower quality (faster)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Lowest quality (fastest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "Gaussian blur quality for display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:782 msgid "" "Best quality, but display may be very slow at high zooms (bitmap export " "always uses best quality)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:759 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +#: ../src/ui/dialog/inkscape-preferences.cpp:784 msgid "Better quality, but slower display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:761 -#: ../src/ui/dialog/inkscape-preferences.cpp:785 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 msgid "Average quality, acceptable display speed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:788 msgid "Lower quality (some artifacts), but display is faster" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:765 -#: ../src/ui/dialog/inkscape-preferences.cpp:789 +#: ../src/ui/dialog/inkscape-preferences.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:790 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Filter effects quality for display" msgstr "" #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:793 msgid "Show filter primitives infobox" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:794 +#: ../src/ui/dialog/inkscape-preferences.cpp:795 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 msgid "Number of Threads:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "(requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:800 msgid "" "Configure number of processors/threads to use with rendering of gaussian blur" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:807 +#: ../src/ui/dialog/inkscape-preferences.cpp:808 msgid "Select in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:808 +#: ../src/ui/dialog/inkscape-preferences.cpp:809 msgid "Select only within current layer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:810 msgid "Select in current layer and sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Ignore hidden objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:811 +#: ../src/ui/dialog/inkscape-preferences.cpp:812 msgid "Ignore locked objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:813 msgid "Deselect upon layer change" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:815 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Make keyboard selection commands work on objects in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:818 +#: ../src/ui/dialog/inkscape-preferences.cpp:819 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:820 +#: ../src/ui/dialog/inkscape-preferences.cpp:821 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:822 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "" "Uncheck this to be able to select objects that are hidden (either by " "themselves or by being in a hidden layer)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:824 +#: ../src/ui/dialog/inkscape-preferences.cpp:825 msgid "" "Uncheck this to be able to select objects that are locked (either by " "themselves or by being in a locked layer)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Selecting" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:836 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 msgid "Default export resolution:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:839 +#: ../src/ui/dialog/inkscape-preferences.cpp:840 msgid "Open Clip Art Library Server Name:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:841 msgid "" "The server name of the Open Clip Art Library webdav server; it's used by the " "Import and Export to OCAL function" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:842 +#: ../src/ui/dialog/inkscape-preferences.cpp:843 msgid "Open Clip Art Library Username:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:843 +#: ../src/ui/dialog/inkscape-preferences.cpp:844 msgid "The username used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:845 +#: ../src/ui/dialog/inkscape-preferences.cpp:846 msgid "Open Clip Art Library Password:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:846 +#: ../src/ui/dialog/inkscape-preferences.cpp:847 msgid "The password used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:848 +#: ../src/ui/dialog/inkscape-preferences.cpp:849 msgid "Import/Export" msgstr "" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Perceptual" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Relative Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Absolute Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:902 +#: ../src/ui/dialog/inkscape-preferences.cpp:903 msgid "(Note: Color management has been disabled in this build)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:906 +#: ../src/ui/dialog/inkscape-preferences.cpp:907 msgid "Display adjustment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 +#: ../src/ui/dialog/inkscape-preferences.cpp:918 msgid "Display profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 msgid "Retrieve profile from display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "Retrieve profiles from those attached to displays" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:933 msgid "Display rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "The rendering intent to use to calibrate display output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Proofing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 +#: ../src/ui/dialog/inkscape-preferences.cpp:938 msgid "Simulate output on screen" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:940 msgid "Simulates output of target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:941 +#: ../src/ui/dialog/inkscape-preferences.cpp:942 msgid "Mark out of gamut colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:944 msgid "Highlights colors that are out of gamut for the target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:948 +#: ../src/ui/dialog/inkscape-preferences.cpp:949 msgid "Out of gamut warning color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:949 +#: ../src/ui/dialog/inkscape-preferences.cpp:950 msgid "Selects the color used for out of gamut warning" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 +#: ../src/ui/dialog/inkscape-preferences.cpp:952 msgid "Device profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/dialog/inkscape-preferences.cpp:953 msgid "The ICC profile to use to simulate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:955 +#: ../src/ui/dialog/inkscape-preferences.cpp:956 msgid "Device rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:956 +#: ../src/ui/dialog/inkscape-preferences.cpp:957 msgid "The rendering intent to use to calibrate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:958 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:960 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 msgid "Enables black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Preserve black" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 +#: ../src/ui/dialog/inkscape-preferences.cpp:968 msgid "(LittleCMS 1.15 or later required)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:982 -#: ../src/widgets/sp-color-icc-selector.cpp:297 -#: ../src/widgets/sp-color-icc-selector.cpp:570 +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/widgets/sp-color-icc-selector.cpp:304 +#: ../src/widgets/sp-color-icc-selector.cpp:577 msgid "" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1027 +#: ../src/ui/dialog/inkscape-preferences.cpp:1028 msgid "Color management" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1032 +#: ../src/ui/dialog/inkscape-preferences.cpp:1033 msgid "Major grid line emphasizing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1034 +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 msgid "Don't emphasize gridlines when zoomed out" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "" "If set and zoomed out, the gridlines will be shown in normal color instead " "of major grid line color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Default grid settings" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1043 -#: ../src/ui/dialog/inkscape-preferences.cpp:1064 +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +#: ../src/ui/dialog/inkscape-preferences.cpp:1065 msgid "Grid units:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Origin X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Origin Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Spacing X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Spacing Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1053 #: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Color used for normal grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1077 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 #: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Major grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Color used for major (highlighted) grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1058 -#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1081 msgid "Major grid line every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 msgid "Show dots instead of lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1087 +#: ../src/ui/dialog/inkscape-preferences.cpp:1088 msgid "Use named colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1088 +#: ../src/ui/dialog/inkscape-preferences.cpp:1089 msgid "" "If set, write the CSS name of the color when available (e.g. 'red' or " "'magenta') instead of the numeric value" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 msgid "XML formatting" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +#: ../src/ui/dialog/inkscape-preferences.cpp:1093 msgid "Inline attributes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 msgid "Put attributes on the same line as the element tag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "Indent, spaces:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1098 +#: ../src/ui/dialog/inkscape-preferences.cpp:1099 msgid "Path data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1100 +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 msgid "Allow relative coordinates" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1101 +#: ../src/ui/dialog/inkscape-preferences.cpp:1102 msgid "If set, relative coordinates may be used in path data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1103 +#: ../src/ui/dialog/inkscape-preferences.cpp:1104 msgid "Force repeat commands" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1104 +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 msgid "" "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead " "of 'L 1,2 3,4')" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1106 +#: ../src/ui/dialog/inkscape-preferences.cpp:1107 msgid "Numbers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Numeric precision:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Significant figures of the values written to the SVG file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "Minimum exponent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1114 +#: ../src/ui/dialog/inkscape-preferences.cpp:1115 msgid "SVG output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "System default" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Albanian (sq)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Amharic (am)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Arabic (ar)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Armenian (hy)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Azerbaijani (az)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Basque (eu)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Belarusian (be)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bulgarian (bg)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bengali (bn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Breton (br)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Catalan (ca)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Valencian Catalan (ca@valencia)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Chinese/China (zh_CN)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Chinese/Taiwan (zh_TW)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Croatian (hr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Czech (cs)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Danish (da)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dutch (nl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dzongkha (dz)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "German (de)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Greek (el)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English (en)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English/Australia (en_AU)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Canada (en_CA)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Great Britain (en_GB)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "Pig Latin (en_US@piglatin)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Esperanto (eo)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Estonian (et)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Farsi (fa)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Finnish (fi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "French (fr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Irish (ga)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Galician (gl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hebrew (he)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hungarian (hu)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Indonesian (id)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Italian (it)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Japanese (ja)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Khmer (km)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Kinyarwanda (rw)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Korean (ko)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Lithuanian (lt)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Macedonian (mk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Mongolian (mn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Nepali (ne)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Bokmål (nb)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Nynorsk (nn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Panjabi (pa)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Polish (pl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese (pt)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese/Brazil (pt_BR)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Romanian (ro)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Russian (ru)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian (sr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian in Latin script (sr@latin)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovak (sk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovenian (sl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish (es)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish/Mexico (es_MX)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Swedish (sv)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Telugu (te_IN)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Thai (th)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Turkish (tr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Ukrainian (uk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Vietnamese (vi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 msgid "Language (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 msgid "Set the language for menus and number formats" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Large" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Small" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Smaller" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "Toolbox icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +#: ../src/ui/dialog/inkscape-preferences.cpp:1171 msgid "Set the size for the tool icons (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 msgid "Control bar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/ui/dialog/inkscape-preferences.cpp:1178 msgid "Secondary toolbar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1178 +#: ../src/ui/dialog/inkscape-preferences.cpp:1179 msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Work-around color sliders not drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Clear list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Maximum documents in Open Recent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "" "Set the maximum length of the Open Recent list in the File menu, or clear " "the list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Zoom correction factor (in %):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1200 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 " "display objects in their true sizes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1203 msgid "Enable dynamic relayout for incomplete sections" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 msgid "" "When on, will allow dynamic layout of components that are not completely " "finished being refactored" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Interface" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1213 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "Use current directory for \"Save As ...\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 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 " @@ -16882,228 +16944,228 @@ msgid "" msgstr "" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Enable autosave (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 msgid "" "Automatically save the current document(s) at a given interval, thus " "minimizing loss in case of a crash" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes) at which document will be autosaved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgctxt "Filesystem" msgid "Path:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgid "The directory where autosaves will be written" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Maximum number of autosaves:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "2x2" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "4x4" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "8x8" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "16x16" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 msgid "Oversample bitmaps:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +#: ../src/ui/dialog/inkscape-preferences.cpp:1256 msgid "Automatically reload bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "Automatically reload linked images when file is changed on disk" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:1260 msgid "Bitmap editor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "Resolution for Create Bitmap Copy:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 msgid "Resolution used by the Create Bitmap Copy command" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 msgid "Bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 msgid "Set the main spell check language" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Second language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 msgid "" "Set the second spell check language; checking will only stop on words " "unknown in ALL chosen languages" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgid "Third language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +#: ../src/ui/dialog/inkscape-preferences.cpp:1326 msgid "" "Set the third spell check language; checking will only stop on words unknown " "in ALL chosen languages" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 msgid "Ignore words with digits" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 msgid "Ignore words in ALL CAPITALS" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1334 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "Spellcheck" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Add label comments to printing output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 msgid "" "When on, a comment will be added to the raw print output, marking the " "rendered output for an object with its label" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1358 +#: ../src/ui/dialog/inkscape-preferences.cpp:1359 msgid "Prevent sharing of gradient definitions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1360 +#: ../src/ui/dialog/inkscape-preferences.cpp:1361 msgid "" "When on, shared gradient definitions are automatically forked on change; " "uncheck to allow sharing of gradient definitions so that editing one object " "may affect other objects using the same gradient" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Simplification threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 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 " "aggressively; invoking it again after a pause restores the default threshold." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "Latency skew:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1368 +#: ../src/ui/dialog/inkscape-preferences.cpp:1369 msgid "" "Factor by which the event clock is skewed from the actual time (0.9766 on " "some systems)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Pre-render named icons" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 msgid "" "When on, named icons will be rendered before displaying the ui. This is for " "working around bugs in GTK+ named icon notification" msgstr "" #. TRANSLATORS: following strings are paths in Inkscape preferences - Misc - System info -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "User config: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1382 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "User data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1386 +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 msgid "User cache: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1390 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "System config: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "System data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +#: ../src/ui/dialog/inkscape-preferences.cpp:1397 msgid "PIXMAP: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +#: ../src/ui/dialog/inkscape-preferences.cpp:1401 msgid "DATA: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "UI: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +#: ../src/ui/dialog/inkscape-preferences.cpp:1414 msgid "Icon theme: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "System info" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "General system information" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1430 +#: ../src/ui/dialog/inkscape-preferences.cpp:1431 msgid "Misc" msgstr "" @@ -17837,8 +17899,8 @@ msgstr "" #. # end multiple scan #. ## end mode page -#: ../src/ui/dialog/tracedialog.cpp:563 ../src/widgets/toolbox.cpp:4502 -#: ../src/widgets/toolbox.cpp:4760 +#: ../src/ui/dialog/tracedialog.cpp:563 ../src/widgets/toolbox.cpp:4520 +#: ../src/widgets/toolbox.cpp:4778 msgid "Mode" msgstr "" @@ -18809,13 +18871,13 @@ msgid "No stroke" msgstr "" #: ../src/ui/widget/selected-style.cpp:167 -#: ../src/ui/widget/style-swatch.cpp:277 ../src/widgets/paint-selector.cpp:237 +#: ../src/ui/widget/style-swatch.cpp:277 ../src/widgets/paint-selector.cpp:233 msgid "Pattern" msgstr "" #: ../src/ui/widget/selected-style.cpp:170 #: ../src/ui/widget/style-swatch.cpp:279 -#: ../src/widgets/paint-selector.cpp:1025 +#: ../src/widgets/paint-selector.cpp:1021 msgid "Pattern fill" msgstr "" @@ -18939,7 +19001,7 @@ msgid "White" msgstr "" #: ../src/ui/widget/selected-style.cpp:237 -#: ../src/widgets/sp-color-icc-selector.cpp:231 +#: ../src/widgets/sp-color-icc-selector.cpp:232 #: ../src/widgets/sp-color-scales.cpp:466 #: ../src/widgets/sp-color-scales.cpp:467 msgid "Black" @@ -21194,17 +21256,17 @@ msgid "Set pattern on stroke" msgstr "" #. Family frame -#: ../src/widgets/font-selector.cpp:150 +#: ../src/widgets/font-selector.cpp:143 msgid "Font family" msgstr "" #. Style frame -#: ../src/widgets/font-selector.cpp:181 +#: ../src/widgets/font-selector.cpp:174 msgctxt "Font selector" msgid "Style" msgstr "" -#: ../src/widgets/font-selector.cpp:219 ../share/extensions/dots.inx.h:2 +#: ../src/widgets/font-selector.cpp:212 ../share/extensions/dots.inx.h:2 msgid "Font size:" msgstr "" @@ -21253,11 +21315,11 @@ msgstr "" msgid "Edit the stops of the gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:543 ../src/widgets/toolbox.cpp:2899 -#: ../src/widgets/toolbox.cpp:2979 ../src/widgets/toolbox.cpp:3303 -#: ../src/widgets/toolbox.cpp:3341 ../src/widgets/toolbox.cpp:3959 -#: ../src/widgets/toolbox.cpp:3983 ../src/widgets/toolbox.cpp:5607 -#: ../src/widgets/toolbox.cpp:5636 +#: ../src/widgets/gradient-toolbar.cpp:543 ../src/widgets/toolbox.cpp:2917 +#: ../src/widgets/toolbox.cpp:2997 ../src/widgets/toolbox.cpp:3321 +#: ../src/widgets/toolbox.cpp:3359 ../src/widgets/toolbox.cpp:3977 +#: ../src/widgets/toolbox.cpp:4001 ../src/widgets/toolbox.cpp:5625 +#: ../src/widgets/toolbox.cpp:5654 msgid "New:" msgstr "" @@ -21284,15 +21346,15 @@ msgstr "" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); -#: ../src/widgets/gradient-toolbar.cpp:622 ../src/widgets/toolbox.cpp:2901 -#: ../src/widgets/toolbox.cpp:3311 ../src/widgets/toolbox.cpp:3329 -#: ../src/widgets/toolbox.cpp:3961 ../src/widgets/toolbox.cpp:3972 -#: ../src/widgets/toolbox.cpp:5610 ../src/widgets/toolbox.cpp:5621 +#: ../src/widgets/gradient-toolbar.cpp:622 ../src/widgets/toolbox.cpp:2919 +#: ../src/widgets/toolbox.cpp:3329 ../src/widgets/toolbox.cpp:3347 +#: ../src/widgets/toolbox.cpp:3979 ../src/widgets/toolbox.cpp:3990 +#: ../src/widgets/toolbox.cpp:5628 ../src/widgets/toolbox.cpp:5639 msgid "Change:" msgstr "" #: ../src/widgets/gradient-vector.cpp:275 -#: ../src/widgets/paint-selector.cpp:912 ../src/widgets/stroke-style.cpp:421 +#: ../src/widgets/paint-selector.cpp:908 ../src/widgets/stroke-style.cpp:421 msgid "No document selected" msgstr "" @@ -21308,233 +21370,233 @@ msgstr "" msgid "No stops in gradient" msgstr "" -#: ../src/widgets/gradient-vector.cpp:667 +#: ../src/widgets/gradient-vector.cpp:666 msgid "Change gradient stop offset" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:806 +#: ../src/widgets/gradient-vector.cpp:805 msgid "Add stop" msgstr "" -#: ../src/widgets/gradient-vector.cpp:809 +#: ../src/widgets/gradient-vector.cpp:808 msgid "Add another control stop to gradient" msgstr "" -#: ../src/widgets/gradient-vector.cpp:811 +#: ../src/widgets/gradient-vector.cpp:810 msgid "Delete stop" msgstr "" -#: ../src/widgets/gradient-vector.cpp:814 +#: ../src/widgets/gradient-vector.cpp:813 msgid "Delete current control stop from gradient" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:870 +#: ../src/widgets/gradient-vector.cpp:869 msgid "Stop Color" msgstr "" -#: ../src/widgets/gradient-vector.cpp:900 +#: ../src/widgets/gradient-vector.cpp:899 msgid "Gradient editor" msgstr "" -#: ../src/widgets/gradient-vector.cpp:1188 +#: ../src/widgets/gradient-vector.cpp:1187 msgid "Change gradient stop color" msgstr "" -#: ../src/widgets/paint-selector.cpp:229 ../src/widgets/paint-selector.cpp:612 +#: ../src/widgets/paint-selector.cpp:225 ../src/widgets/paint-selector.cpp:608 msgid "No paint" msgstr "" -#: ../src/widgets/paint-selector.cpp:231 ../src/widgets/paint-selector.cpp:676 +#: ../src/widgets/paint-selector.cpp:227 ../src/widgets/paint-selector.cpp:672 msgid "Flat color" msgstr "" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:233 ../src/widgets/paint-selector.cpp:739 +#: ../src/widgets/paint-selector.cpp:229 ../src/widgets/paint-selector.cpp:735 msgid "Linear gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:235 ../src/widgets/paint-selector.cpp:742 +#: ../src/widgets/paint-selector.cpp:231 ../src/widgets/paint-selector.cpp:738 msgid "Radial gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:239 +#: ../src/widgets/paint-selector.cpp:235 msgid "Swatch" msgstr "" -#: ../src/widgets/paint-selector.cpp:241 +#: ../src/widgets/paint-selector.cpp:237 msgid "Unset paint (make it undefined so it can be inherited)" msgstr "" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:253 +#: ../src/widgets/paint-selector.cpp:249 msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" msgstr "" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:264 +#: ../src/widgets/paint-selector.cpp:260 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -#: ../src/widgets/paint-selector.cpp:579 +#: ../src/widgets/paint-selector.cpp:575 msgid "No objects" msgstr "" -#: ../src/widgets/paint-selector.cpp:590 +#: ../src/widgets/paint-selector.cpp:586 msgid "Multiple styles" msgstr "" -#: ../src/widgets/paint-selector.cpp:601 +#: ../src/widgets/paint-selector.cpp:597 msgid "Paint is undefined" msgstr "" -#: ../src/widgets/paint-selector.cpp:1012 +#: ../src/widgets/paint-selector.cpp:1008 msgid "" "Use the Node tool to adjust position, scale, and rotation of the " "pattern on canvas. Use Object > Pattern > Objects to Pattern to " "create a new pattern from selection." msgstr "" -#: ../src/widgets/paint-selector.cpp:1100 +#: ../src/widgets/paint-selector.cpp:1096 msgid "Swatch fill" msgstr "" -#: ../src/widgets/select-toolbar.cpp:249 +#: ../src/widgets/select-toolbar.cpp:256 msgid "Transform by toolbar" msgstr "" -#: ../src/widgets/select-toolbar.cpp:322 +#: ../src/widgets/select-toolbar.cpp:329 msgid "Now stroke width is scaled when objects are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:324 +#: ../src/widgets/select-toolbar.cpp:331 msgid "Now stroke width is not scaled when objects are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:335 +#: ../src/widgets/select-toolbar.cpp:342 msgid "" "Now rounded rectangle corners are scaled when rectangles are " "scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:337 +#: ../src/widgets/select-toolbar.cpp:344 msgid "" "Now rounded rectangle corners are not scaled when rectangles " "are scaled." msgstr "" -#: ../src/widgets/select-toolbar.cpp:348 +#: ../src/widgets/select-toolbar.cpp:355 msgid "" "Now gradients are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:350 +#: ../src/widgets/select-toolbar.cpp:357 msgid "" "Now gradients remain fixed when objects are transformed " "(moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:361 +#: ../src/widgets/select-toolbar.cpp:368 msgid "" "Now patterns are transformed along with their objects when " "those are transformed (moved, scaled, rotated, or skewed)." msgstr "" -#: ../src/widgets/select-toolbar.cpp:363 +#: ../src/widgets/select-toolbar.cpp:370 msgid "" "Now patterns remain fixed when objects are transformed (moved, " "scaled, rotated, or skewed)." msgstr "" #. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X position" msgstr "" -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:478 +#: ../src/widgets/select-toolbar.cpp:485 msgid "Horizontal coordinate of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y position" msgstr "" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:484 +#: ../src/widgets/select-toolbar.cpp:491 msgid "Vertical coordinate of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "Width" msgstr "" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "W:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:490 +#: ../src/widgets/select-toolbar.cpp:497 msgid "Width of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:497 +#: ../src/widgets/select-toolbar.cpp:504 msgid "Lock width and height" msgstr "" -#: ../src/widgets/select-toolbar.cpp:498 +#: ../src/widgets/select-toolbar.cpp:505 msgid "When locked, change both width and height by the same proportion" msgstr "" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "Height" msgstr "" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "H:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:509 +#: ../src/widgets/select-toolbar.cpp:516 msgid "Height of selection" msgstr "" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "Affect:" msgstr "" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "" "Control whether or not to scale stroke widths, scale rectangle corners, " "transform gradient fills, and transform pattern fills with the object" msgstr "" -#: ../src/widgets/select-toolbar.cpp:565 +#: ../src/widgets/select-toolbar.cpp:572 msgid "Scale rounded corners" msgstr "" -#: ../src/widgets/select-toolbar.cpp:576 +#: ../src/widgets/select-toolbar.cpp:583 msgid "Move gradients" msgstr "" -#: ../src/widgets/select-toolbar.cpp:587 +#: ../src/widgets/select-toolbar.cpp:594 msgid "Move patterns" msgstr "" @@ -21542,95 +21604,95 @@ msgstr "" msgid "System" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:105 +#: ../src/widgets/sp-color-icc-selector.cpp:106 msgid "CMS" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:402 msgid "_R:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:213 #: ../src/widgets/sp-color-icc-selector.cpp:214 +#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-scales.cpp:405 msgid "_G:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:408 msgid "_B:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:428 msgid "_H:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:431 msgid "_S:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:434 msgid "_L:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:456 msgid "_C:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:459 msgid "_M:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:217 +#: ../src/widgets/sp-color-icc-selector.cpp:218 #: ../src/widgets/sp-color-scales.cpp:465 msgid "_K:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:228 +#: ../src/widgets/sp-color-icc-selector.cpp:229 msgid "Gray" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:457 #: ../src/widgets/sp-color-scales.cpp:458 msgid "Cyan" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:460 #: ../src/widgets/sp-color-scales.cpp:461 msgid "Magenta" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:463 #: ../src/widgets/sp-color-scales.cpp:464 msgid "Yellow" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:287 +#: ../src/widgets/sp-color-icc-selector.cpp:294 msgid "Fix" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:290 +#: ../src/widgets/sp-color-icc-selector.cpp:297 msgid "Fix RGB fallback to match icc-color() value." msgstr "" #. Label -#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:378 #: ../src/widgets/sp-color-scales.cpp:411 #: ../src/widgets/sp-color-scales.cpp:437 #: ../src/widgets/sp-color-scales.cpp:468 @@ -21638,8 +21700,8 @@ msgstr "" msgid "_A:" msgstr "" -#: ../src/widgets/sp-color-icc-selector.cpp:381 -#: ../src/widgets/sp-color-icc-selector.cpp:393 +#: ../src/widgets/sp-color-icc-selector.cpp:388 +#: ../src/widgets/sp-color-icc-selector.cpp:400 #: ../src/widgets/sp-color-scales.cpp:412 #: ../src/widgets/sp-color-scales.cpp:413 #: ../src/widgets/sp-color-scales.cpp:438 @@ -21651,24 +21713,24 @@ msgstr "" msgid "Alpha (opacity)" msgstr "" -#: ../src/widgets/sp-color-notebook.cpp:337 +#: ../src/widgets/sp-color-notebook.cpp:339 msgid "Color Managed" msgstr "" -#: ../src/widgets/sp-color-notebook.cpp:344 +#: ../src/widgets/sp-color-notebook.cpp:346 msgid "Out of gamut!" msgstr "" -#: ../src/widgets/sp-color-notebook.cpp:351 +#: ../src/widgets/sp-color-notebook.cpp:353 msgid "Too much ink!" msgstr "" #. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:358 +#: ../src/widgets/sp-color-notebook.cpp:360 msgid "RGBA_:" msgstr "" -#: ../src/widgets/sp-color-notebook.cpp:366 +#: ../src/widgets/sp-color-notebook.cpp:368 msgid "Hexadecimal RGBA value of the color" msgstr "" @@ -22009,7 +22071,7 @@ msgstr "" msgid "Y coordinate of selected node(s)" msgstr "" -#: ../src/widgets/toolbox.cpp:1667 ../src/widgets/toolbox.cpp:7607 +#: ../src/widgets/toolbox.cpp:1667 ../src/widgets/toolbox.cpp:7625 msgid "Font Size" msgstr "" @@ -22025,1410 +22087,1418 @@ msgstr "" msgid "The units to be used for the measurements" msgstr "" -#: ../src/widgets/toolbox.cpp:2281 +#: ../src/widgets/toolbox.cpp:2286 msgid "Bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:2281 +#: ../src/widgets/toolbox.cpp:2286 msgid "Snap bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:2290 +#: ../src/widgets/toolbox.cpp:2295 msgid "Bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:2290 +#: ../src/widgets/toolbox.cpp:2295 msgid "Snap to edges of a bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:2299 +#: ../src/widgets/toolbox.cpp:2304 msgid "Bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:2299 +#: ../src/widgets/toolbox.cpp:2304 msgid "Snap to bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:2308 +#: ../src/widgets/toolbox.cpp:2313 msgid "BBox Edge Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:2308 +#: ../src/widgets/toolbox.cpp:2313 msgid "Snap from and to midpoints of bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2323 msgid "BBox Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2323 msgid "Snapping from and to centers of bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2332 msgid "Snap nodes or handles" msgstr "" -#: ../src/widgets/toolbox.cpp:2335 +#: ../src/widgets/toolbox.cpp:2340 msgid "Snap to paths" msgstr "" -#: ../src/widgets/toolbox.cpp:2344 +#: ../src/widgets/toolbox.cpp:2349 msgid "Path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:2344 +#: ../src/widgets/toolbox.cpp:2349 msgid "Snap to path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:2353 +#: ../src/widgets/toolbox.cpp:2358 msgid "To nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:2353 +#: ../src/widgets/toolbox.cpp:2358 msgid "Snap to cusp nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:2362 +#: ../src/widgets/toolbox.cpp:2367 msgid "Smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:2362 +#: ../src/widgets/toolbox.cpp:2367 msgid "Snap to smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:2371 +#: ../src/widgets/toolbox.cpp:2376 msgid "Line Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:2371 +#: ../src/widgets/toolbox.cpp:2376 msgid "Snap from and to midpoints of line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:2380 +#: ../src/widgets/toolbox.cpp:2385 msgid "Others" msgstr "" -#: ../src/widgets/toolbox.cpp:2380 +#: ../src/widgets/toolbox.cpp:2385 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../src/widgets/toolbox.cpp:2388 +#: ../src/widgets/toolbox.cpp:2393 msgid "Object Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:2388 +#: ../src/widgets/toolbox.cpp:2393 msgid "Snap from and to centers of objects" msgstr "" -#: ../src/widgets/toolbox.cpp:2397 +#: ../src/widgets/toolbox.cpp:2402 msgid "Rotation Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:2397 +#: ../src/widgets/toolbox.cpp:2402 msgid "Snap from and to an item's rotation center" msgstr "" -#: ../src/widgets/toolbox.cpp:2406 +#: ../src/widgets/toolbox.cpp:2411 +msgid "Text baseline" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2411 +msgid "Snap from and to text anchors and baselines" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2421 msgid "Page border" msgstr "" -#: ../src/widgets/toolbox.cpp:2406 +#: ../src/widgets/toolbox.cpp:2421 msgid "Snap to the page border" msgstr "" -#: ../src/widgets/toolbox.cpp:2415 +#: ../src/widgets/toolbox.cpp:2430 msgid "Snap to grids" msgstr "" -#: ../src/widgets/toolbox.cpp:2424 +#: ../src/widgets/toolbox.cpp:2439 msgid "Snap to guides" msgstr "" -#: ../src/widgets/toolbox.cpp:2634 +#: ../src/widgets/toolbox.cpp:2652 msgid "Star: Change number of corners" msgstr "" -#: ../src/widgets/toolbox.cpp:2682 +#: ../src/widgets/toolbox.cpp:2700 msgid "Star: Change spoke ratio" msgstr "" -#: ../src/widgets/toolbox.cpp:2727 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make polygon" msgstr "" -#: ../src/widgets/toolbox.cpp:2727 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make star" msgstr "" -#: ../src/widgets/toolbox.cpp:2765 +#: ../src/widgets/toolbox.cpp:2783 msgid "Star: Change rounding" msgstr "" -#: ../src/widgets/toolbox.cpp:2803 +#: ../src/widgets/toolbox.cpp:2821 msgid "Star: Change randomization" msgstr "" -#: ../src/widgets/toolbox.cpp:2998 +#: ../src/widgets/toolbox.cpp:3016 msgid "Regular polygon (with one handle) instead of a star" msgstr "" -#: ../src/widgets/toolbox.cpp:3005 +#: ../src/widgets/toolbox.cpp:3023 msgid "Star instead of a regular polygon (with one handle)" msgstr "" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "triangle/tri-star" msgstr "" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "square/quad-star" msgstr "" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "pentagon/five-pointed star" msgstr "" -#: ../src/widgets/toolbox.cpp:3026 +#: ../src/widgets/toolbox.cpp:3044 msgid "hexagon/six-pointed star" msgstr "" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners" msgstr "" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners:" msgstr "" -#: ../src/widgets/toolbox.cpp:3029 +#: ../src/widgets/toolbox.cpp:3047 msgid "Number of corners of a polygon or star" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "thin-ray star" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "pentagram" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "hexagram" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "heptagram" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "octagram" msgstr "" -#: ../src/widgets/toolbox.cpp:3042 +#: ../src/widgets/toolbox.cpp:3060 msgid "regular polygon" msgstr "" -#: ../src/widgets/toolbox.cpp:3045 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio" msgstr "" -#: ../src/widgets/toolbox.cpp:3045 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio:" msgstr "" #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. #. Base radius is the same for the closest handle. -#: ../src/widgets/toolbox.cpp:3048 +#: ../src/widgets/toolbox.cpp:3066 msgid "Base radius to tip radius ratio" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "stretched" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "twisted" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly pinched" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "NOT rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "visibly rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "well rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 +#: ../src/widgets/toolbox.cpp:3084 msgid "amply rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3066 ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3084 ../src/widgets/toolbox.cpp:3099 msgid "blown up" msgstr "" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded:" msgstr "" -#: ../src/widgets/toolbox.cpp:3069 +#: ../src/widgets/toolbox.cpp:3087 msgid "How much rounded are the corners (0 for sharp)" msgstr "" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "NOT randomized" msgstr "" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "slightly irregular" msgstr "" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "visibly randomized" msgstr "" -#: ../src/widgets/toolbox.cpp:3081 +#: ../src/widgets/toolbox.cpp:3099 msgid "strongly randomized" msgstr "" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized" msgstr "" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized:" msgstr "" -#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3102 msgid "Scatter randomly the corners and angles" msgstr "" -#: ../src/widgets/toolbox.cpp:3099 ../src/widgets/toolbox.cpp:4034 -#: ../src/widgets/toolbox.cpp:4289 ../src/widgets/toolbox.cpp:8586 +#: ../src/widgets/toolbox.cpp:3117 ../src/widgets/toolbox.cpp:4052 +#: ../src/widgets/toolbox.cpp:4307 ../src/widgets/toolbox.cpp:8604 msgid "Defaults" msgstr "" -#: ../src/widgets/toolbox.cpp:3100 ../src/widgets/toolbox.cpp:4035 +#: ../src/widgets/toolbox.cpp:3118 ../src/widgets/toolbox.cpp:4053 msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -#: ../src/widgets/toolbox.cpp:3172 +#: ../src/widgets/toolbox.cpp:3190 msgid "Change rectangle" msgstr "" -#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3377 msgid "W:" msgstr "" -#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3377 msgid "Width of rectangle" msgstr "" -#: ../src/widgets/toolbox.cpp:3376 +#: ../src/widgets/toolbox.cpp:3394 msgid "H:" msgstr "" -#: ../src/widgets/toolbox.cpp:3376 +#: ../src/widgets/toolbox.cpp:3394 msgid "Height of rectangle" msgstr "" -#: ../src/widgets/toolbox.cpp:3390 ../src/widgets/toolbox.cpp:3405 +#: ../src/widgets/toolbox.cpp:3408 ../src/widgets/toolbox.cpp:3423 msgid "not rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius" msgstr "" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Rx:" msgstr "" -#: ../src/widgets/toolbox.cpp:3393 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius of rounded corners" msgstr "" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius" msgstr "" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Ry:" msgstr "" -#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius of rounded corners" msgstr "" -#: ../src/widgets/toolbox.cpp:3427 +#: ../src/widgets/toolbox.cpp:3445 msgid "Not rounded" msgstr "" -#: ../src/widgets/toolbox.cpp:3428 +#: ../src/widgets/toolbox.cpp:3446 msgid "Make corners sharp" msgstr "" #. TODO: use the correct axis here, too -#: ../src/widgets/toolbox.cpp:3623 +#: ../src/widgets/toolbox.cpp:3641 msgid "3D Box: Change perspective (angle of infinite axis)" msgstr "" -#: ../src/widgets/toolbox.cpp:3690 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle in X direction" msgstr "" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3692 +#: ../src/widgets/toolbox.cpp:3710 msgid "Angle of PLs in X direction" msgstr "" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3714 +#: ../src/widgets/toolbox.cpp:3732 msgid "State of VP in X direction" msgstr "" -#: ../src/widgets/toolbox.cpp:3715 +#: ../src/widgets/toolbox.cpp:3733 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" msgstr "" -#: ../src/widgets/toolbox.cpp:3730 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle in Y direction" msgstr "" -#: ../src/widgets/toolbox.cpp:3730 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle Y:" msgstr "" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3732 +#: ../src/widgets/toolbox.cpp:3750 msgid "Angle of PLs in Y direction" msgstr "" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3753 +#: ../src/widgets/toolbox.cpp:3771 msgid "State of VP in Y direction" msgstr "" -#: ../src/widgets/toolbox.cpp:3754 +#: ../src/widgets/toolbox.cpp:3772 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" msgstr "" -#: ../src/widgets/toolbox.cpp:3769 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle in Z direction" msgstr "" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3771 +#: ../src/widgets/toolbox.cpp:3789 msgid "Angle of PLs in Z direction" msgstr "" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3792 +#: ../src/widgets/toolbox.cpp:3810 msgid "State of VP in Z direction" msgstr "" -#: ../src/widgets/toolbox.cpp:3793 +#: ../src/widgets/toolbox.cpp:3811 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" msgstr "" -#: ../src/widgets/toolbox.cpp:3851 +#: ../src/widgets/toolbox.cpp:3869 msgid "Change spiral" msgstr "" -#: ../src/widgets/toolbox.cpp:3991 +#: ../src/widgets/toolbox.cpp:4009 msgid "just a curve" msgstr "" -#: ../src/widgets/toolbox.cpp:3991 +#: ../src/widgets/toolbox.cpp:4009 msgid "one full revolution" msgstr "" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of turns" msgstr "" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Turns:" msgstr "" -#: ../src/widgets/toolbox.cpp:3994 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of revolutions" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "circle" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is much denser" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is denser" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "even" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is denser" msgstr "" -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is much denser" msgstr "" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence" msgstr "" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence:" msgstr "" -#: ../src/widgets/toolbox.cpp:4008 +#: ../src/widgets/toolbox.cpp:4026 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts from center" msgstr "" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts mid-way" msgstr "" -#: ../src/widgets/toolbox.cpp:4019 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts near edge" msgstr "" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius" msgstr "" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius:" msgstr "" -#: ../src/widgets/toolbox.cpp:4022 +#: ../src/widgets/toolbox.cpp:4040 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "" -#: ../src/widgets/toolbox.cpp:4094 +#: ../src/widgets/toolbox.cpp:4112 msgid "Bezier" msgstr "" -#: ../src/widgets/toolbox.cpp:4095 +#: ../src/widgets/toolbox.cpp:4113 msgid "Create regular Bezier path" msgstr "" -#: ../src/widgets/toolbox.cpp:4101 +#: ../src/widgets/toolbox.cpp:4119 msgid "Spiro" msgstr "" -#: ../src/widgets/toolbox.cpp:4102 +#: ../src/widgets/toolbox.cpp:4120 msgid "Create Spiro path" msgstr "" -#: ../src/widgets/toolbox.cpp:4109 +#: ../src/widgets/toolbox.cpp:4127 msgid "Zigzag" msgstr "" -#: ../src/widgets/toolbox.cpp:4110 +#: ../src/widgets/toolbox.cpp:4128 msgid "Create a sequence of straight line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:4116 +#: ../src/widgets/toolbox.cpp:4134 msgid "Paraxial" msgstr "" -#: ../src/widgets/toolbox.cpp:4117 +#: ../src/widgets/toolbox.cpp:4135 msgid "Create a sequence of paraxial line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:4125 +#: ../src/widgets/toolbox.cpp:4143 msgid "Mode of new lines drawn by this tool" msgstr "" -#: ../src/widgets/toolbox.cpp:4154 +#: ../src/widgets/toolbox.cpp:4172 msgid "Triangle in" msgstr "" -#: ../src/widgets/toolbox.cpp:4155 +#: ../src/widgets/toolbox.cpp:4173 msgid "Triangle out" msgstr "" -#: ../src/widgets/toolbox.cpp:4157 +#: ../src/widgets/toolbox.cpp:4175 msgid "From clipboard" msgstr "" -#: ../src/widgets/toolbox.cpp:4182 ../src/widgets/toolbox.cpp:4183 +#: ../src/widgets/toolbox.cpp:4200 ../src/widgets/toolbox.cpp:4201 msgid "Shape:" msgstr "" -#: ../src/widgets/toolbox.cpp:4182 +#: ../src/widgets/toolbox.cpp:4200 msgid "Shape of new paths drawn by this tool" msgstr "" -#: ../src/widgets/toolbox.cpp:4266 +#: ../src/widgets/toolbox.cpp:4284 msgid "(many nodes, rough)" msgstr "" #. Mean #. Rotation #. Scale -#: ../src/widgets/toolbox.cpp:4266 ../src/widgets/toolbox.cpp:4374 -#: ../src/widgets/toolbox.cpp:4391 ../src/widgets/toolbox.cpp:4599 -#: ../src/widgets/toolbox.cpp:4688 ../src/widgets/toolbox.cpp:4704 -#: ../src/widgets/toolbox.cpp:4720 ../src/widgets/toolbox.cpp:4780 -#: ../src/widgets/toolbox.cpp:4810 ../src/widgets/toolbox.cpp:4828 -#: ../src/widgets/toolbox.cpp:5183 ../src/widgets/toolbox.cpp:5216 -#: ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:4284 ../src/widgets/toolbox.cpp:4392 +#: ../src/widgets/toolbox.cpp:4409 ../src/widgets/toolbox.cpp:4617 +#: ../src/widgets/toolbox.cpp:4706 ../src/widgets/toolbox.cpp:4722 +#: ../src/widgets/toolbox.cpp:4738 ../src/widgets/toolbox.cpp:4798 +#: ../src/widgets/toolbox.cpp:4828 ../src/widgets/toolbox.cpp:4846 +#: ../src/widgets/toolbox.cpp:5201 ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:6263 msgid "(default)" msgstr "" -#: ../src/widgets/toolbox.cpp:4266 +#: ../src/widgets/toolbox.cpp:4284 msgid "(few nodes, smooth)" msgstr "" -#: ../src/widgets/toolbox.cpp:4269 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing:" msgstr "" -#: ../src/widgets/toolbox.cpp:4269 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing: " msgstr "" -#: ../src/widgets/toolbox.cpp:4270 +#: ../src/widgets/toolbox.cpp:4288 msgid "How much smoothing (simplifying) is applied to the line" msgstr "" -#: ../src/widgets/toolbox.cpp:4290 +#: ../src/widgets/toolbox.cpp:4308 msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" #. Width -#: ../src/widgets/toolbox.cpp:4374 +#: ../src/widgets/toolbox.cpp:4392 msgid "(pinch tweak)" msgstr "" -#: ../src/widgets/toolbox.cpp:4374 +#: ../src/widgets/toolbox.cpp:4392 msgid "(broad tweak)" msgstr "" -#: ../src/widgets/toolbox.cpp:4377 +#: ../src/widgets/toolbox.cpp:4395 msgid "The width of the tweak area (relative to the visible canvas area)" msgstr "" #. Force -#: ../src/widgets/toolbox.cpp:4391 +#: ../src/widgets/toolbox.cpp:4409 msgid "(minimum force)" msgstr "" -#: ../src/widgets/toolbox.cpp:4391 +#: ../src/widgets/toolbox.cpp:4409 msgid "(maximum force)" msgstr "" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force" msgstr "" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force:" msgstr "" -#: ../src/widgets/toolbox.cpp:4394 +#: ../src/widgets/toolbox.cpp:4412 msgid "The force of the tweak action" msgstr "" -#: ../src/widgets/toolbox.cpp:4412 +#: ../src/widgets/toolbox.cpp:4430 msgid "Move mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4413 +#: ../src/widgets/toolbox.cpp:4431 msgid "Move objects in any direction" msgstr "" -#: ../src/widgets/toolbox.cpp:4419 +#: ../src/widgets/toolbox.cpp:4437 msgid "Move in/out mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4420 +#: ../src/widgets/toolbox.cpp:4438 msgid "Move objects towards cursor; with Shift from cursor" msgstr "" -#: ../src/widgets/toolbox.cpp:4426 +#: ../src/widgets/toolbox.cpp:4444 msgid "Move jitter mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4427 +#: ../src/widgets/toolbox.cpp:4445 msgid "Move objects in random directions" msgstr "" -#: ../src/widgets/toolbox.cpp:4433 +#: ../src/widgets/toolbox.cpp:4451 msgid "Scale mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4434 +#: ../src/widgets/toolbox.cpp:4452 msgid "Shrink objects, with Shift enlarge" msgstr "" -#: ../src/widgets/toolbox.cpp:4440 +#: ../src/widgets/toolbox.cpp:4458 msgid "Rotate mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4441 +#: ../src/widgets/toolbox.cpp:4459 msgid "Rotate objects, with Shift counterclockwise" msgstr "" -#: ../src/widgets/toolbox.cpp:4447 +#: ../src/widgets/toolbox.cpp:4465 msgid "Duplicate/delete mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4448 +#: ../src/widgets/toolbox.cpp:4466 msgid "Duplicate objects, with Shift delete" msgstr "" -#: ../src/widgets/toolbox.cpp:4454 +#: ../src/widgets/toolbox.cpp:4472 msgid "Push mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4455 +#: ../src/widgets/toolbox.cpp:4473 msgid "Push parts of paths in any direction" msgstr "" -#: ../src/widgets/toolbox.cpp:4461 +#: ../src/widgets/toolbox.cpp:4479 msgid "Shrink/grow mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4462 +#: ../src/widgets/toolbox.cpp:4480 msgid "Shrink (inset) parts of paths; with Shift grow (outset)" msgstr "" -#: ../src/widgets/toolbox.cpp:4468 +#: ../src/widgets/toolbox.cpp:4486 msgid "Attract/repel mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4469 +#: ../src/widgets/toolbox.cpp:4487 msgid "Attract parts of paths towards cursor; with Shift from cursor" msgstr "" -#: ../src/widgets/toolbox.cpp:4475 +#: ../src/widgets/toolbox.cpp:4493 msgid "Roughen mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4476 +#: ../src/widgets/toolbox.cpp:4494 msgid "Roughen parts of paths" msgstr "" -#: ../src/widgets/toolbox.cpp:4482 +#: ../src/widgets/toolbox.cpp:4500 msgid "Color paint mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4483 +#: ../src/widgets/toolbox.cpp:4501 msgid "Paint the tool's color upon selected objects" msgstr "" -#: ../src/widgets/toolbox.cpp:4489 +#: ../src/widgets/toolbox.cpp:4507 msgid "Color jitter mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4490 +#: ../src/widgets/toolbox.cpp:4508 msgid "Jitter the colors of selected objects" msgstr "" -#: ../src/widgets/toolbox.cpp:4496 +#: ../src/widgets/toolbox.cpp:4514 msgid "Blur mode" msgstr "" -#: ../src/widgets/toolbox.cpp:4497 +#: ../src/widgets/toolbox.cpp:4515 msgid "Blur selected objects more; with Shift, blur less" msgstr "" -#: ../src/widgets/toolbox.cpp:4524 +#: ../src/widgets/toolbox.cpp:4542 msgid "Channels:" msgstr "" -#: ../src/widgets/toolbox.cpp:4536 +#: ../src/widgets/toolbox.cpp:4554 msgid "In color mode, act on objects' hue" msgstr "" #. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/toolbox.cpp:4540 +#: ../src/widgets/toolbox.cpp:4558 msgid "H" msgstr "" -#: ../src/widgets/toolbox.cpp:4552 +#: ../src/widgets/toolbox.cpp:4570 msgid "In color mode, act on objects' saturation" msgstr "" #. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/toolbox.cpp:4556 +#: ../src/widgets/toolbox.cpp:4574 msgid "S" msgstr "" -#: ../src/widgets/toolbox.cpp:4568 +#: ../src/widgets/toolbox.cpp:4586 msgid "In color mode, act on objects' lightness" msgstr "" #. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/toolbox.cpp:4572 +#: ../src/widgets/toolbox.cpp:4590 msgid "L" msgstr "" -#: ../src/widgets/toolbox.cpp:4584 +#: ../src/widgets/toolbox.cpp:4602 msgid "In color mode, act on objects' opacity" msgstr "" #. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/toolbox.cpp:4588 +#: ../src/widgets/toolbox.cpp:4606 msgid "O" msgstr "" #. Fidelity -#: ../src/widgets/toolbox.cpp:4599 +#: ../src/widgets/toolbox.cpp:4617 msgid "(rough, simplified)" msgstr "" -#: ../src/widgets/toolbox.cpp:4599 +#: ../src/widgets/toolbox.cpp:4617 msgid "(fine, but many nodes)" msgstr "" -#: ../src/widgets/toolbox.cpp:4602 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity" msgstr "" -#: ../src/widgets/toolbox.cpp:4602 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity:" msgstr "" -#: ../src/widgets/toolbox.cpp:4603 +#: ../src/widgets/toolbox.cpp:4621 msgid "" "Low fidelity simplifies paths; high fidelity preserves path features but may " "generate a lot of new nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:4621 ../src/widgets/toolbox.cpp:4799 -#: ../src/widgets/toolbox.cpp:5334 +#: ../src/widgets/toolbox.cpp:4639 ../src/widgets/toolbox.cpp:4817 +#: ../src/widgets/toolbox.cpp:5352 msgid "Pressure" msgstr "" -#: ../src/widgets/toolbox.cpp:4622 +#: ../src/widgets/toolbox.cpp:4640 msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "" #. Width -#: ../src/widgets/toolbox.cpp:4688 +#: ../src/widgets/toolbox.cpp:4706 msgid "(narrow spray)" msgstr "" -#: ../src/widgets/toolbox.cpp:4688 +#: ../src/widgets/toolbox.cpp:4706 msgid "(broad spray)" msgstr "" -#: ../src/widgets/toolbox.cpp:4691 +#: ../src/widgets/toolbox.cpp:4709 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "" -#: ../src/widgets/toolbox.cpp:4704 +#: ../src/widgets/toolbox.cpp:4722 msgid "(maximum mean)" msgstr "" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus" msgstr "" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus:" msgstr "" -#: ../src/widgets/toolbox.cpp:4707 +#: ../src/widgets/toolbox.cpp:4725 msgid "0 to spray a spot; increase to enlarge the ring radius" msgstr "" #. Standard_deviation -#: ../src/widgets/toolbox.cpp:4720 +#: ../src/widgets/toolbox.cpp:4738 msgid "(minimum scatter)" msgstr "" -#: ../src/widgets/toolbox.cpp:4720 +#: ../src/widgets/toolbox.cpp:4738 msgid "(maximum scatter)" msgstr "" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgctxt "Spray tool" msgid "Scatter" msgstr "" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgctxt "Spray tool" msgid "Scatter:" msgstr "" -#: ../src/widgets/toolbox.cpp:4723 +#: ../src/widgets/toolbox.cpp:4741 msgid "Increase to scatter sprayed objects" msgstr "" -#: ../src/widgets/toolbox.cpp:4742 +#: ../src/widgets/toolbox.cpp:4760 msgid "Spray copies of the initial selection" msgstr "" -#: ../src/widgets/toolbox.cpp:4749 +#: ../src/widgets/toolbox.cpp:4767 msgid "Spray clones of the initial selection" msgstr "" -#: ../src/widgets/toolbox.cpp:4755 +#: ../src/widgets/toolbox.cpp:4773 msgid "Spray single path" msgstr "" -#: ../src/widgets/toolbox.cpp:4756 +#: ../src/widgets/toolbox.cpp:4774 msgid "Spray objects in a single path" msgstr "" #. Population -#: ../src/widgets/toolbox.cpp:4780 +#: ../src/widgets/toolbox.cpp:4798 msgid "(low population)" msgstr "" -#: ../src/widgets/toolbox.cpp:4780 +#: ../src/widgets/toolbox.cpp:4798 msgid "(high population)" msgstr "" -#: ../src/widgets/toolbox.cpp:4783 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount" msgstr "" -#: ../src/widgets/toolbox.cpp:4784 +#: ../src/widgets/toolbox.cpp:4802 msgid "Adjusts the number of items sprayed per click" msgstr "" -#: ../src/widgets/toolbox.cpp:4800 +#: ../src/widgets/toolbox.cpp:4818 msgid "" "Use the pressure of the input device to alter the amount of sprayed objects" msgstr "" -#: ../src/widgets/toolbox.cpp:4810 +#: ../src/widgets/toolbox.cpp:4828 msgid "(high rotation variation)" msgstr "" -#: ../src/widgets/toolbox.cpp:4813 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation" msgstr "" -#: ../src/widgets/toolbox.cpp:4813 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation:" msgstr "" -#: ../src/widgets/toolbox.cpp:4815 +#: ../src/widgets/toolbox.cpp:4833 #, no-c-format msgid "" "Variation of the rotation of the sprayed objects; 0% for the same rotation " "than the original object" msgstr "" -#: ../src/widgets/toolbox.cpp:4828 +#: ../src/widgets/toolbox.cpp:4846 msgid "(high scale variation)" msgstr "" -#: ../src/widgets/toolbox.cpp:4831 +#: ../src/widgets/toolbox.cpp:4849 msgctxt "Spray tool" msgid "Scale" msgstr "" -#: ../src/widgets/toolbox.cpp:4831 +#: ../src/widgets/toolbox.cpp:4849 msgctxt "Spray tool" msgid "Scale:" msgstr "" -#: ../src/widgets/toolbox.cpp:4833 +#: ../src/widgets/toolbox.cpp:4851 #, no-c-format msgid "" "Variation in the scale of the sprayed objects; 0% for the same scale than " "the original object" msgstr "" -#: ../src/widgets/toolbox.cpp:5007 +#: ../src/widgets/toolbox.cpp:5025 msgid "No preset" msgstr "" -#: ../src/widgets/toolbox.cpp:5025 +#: ../src/widgets/toolbox.cpp:5043 msgid "Save..." msgstr "" #. Width -#: ../src/widgets/toolbox.cpp:5183 ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:5201 ../src/widgets/toolbox.cpp:6263 msgid "(hairline)" msgstr "" -#: ../src/widgets/toolbox.cpp:5183 ../src/widgets/toolbox.cpp:6245 +#: ../src/widgets/toolbox.cpp:5201 ../src/widgets/toolbox.cpp:6263 msgid "(broad stroke)" msgstr "" -#: ../src/widgets/toolbox.cpp:5186 ../src/widgets/toolbox.cpp:6248 +#: ../src/widgets/toolbox.cpp:5204 ../src/widgets/toolbox.cpp:6266 msgid "Pen Width" msgstr "" -#: ../src/widgets/toolbox.cpp:5187 +#: ../src/widgets/toolbox.cpp:5205 msgid "The width of the calligraphic pen (relative to the visible canvas area)" msgstr "" #. Thinning -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed blows up stroke)" msgstr "" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight widening)" msgstr "" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(constant width)" msgstr "" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight thinning, default)" msgstr "" -#: ../src/widgets/toolbox.cpp:5200 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed deflates stroke)" msgstr "" -#: ../src/widgets/toolbox.cpp:5203 +#: ../src/widgets/toolbox.cpp:5221 msgid "Stroke Thinning" msgstr "" -#: ../src/widgets/toolbox.cpp:5203 +#: ../src/widgets/toolbox.cpp:5221 msgid "Thinning:" msgstr "" -#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:5222 msgid "" "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " "makes them broader, 0 makes width independent of velocity)" msgstr "" #. Angle -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(left edge up)" msgstr "" -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(horizontal)" msgstr "" -#: ../src/widgets/toolbox.cpp:5216 +#: ../src/widgets/toolbox.cpp:5234 msgid "(right edge up)" msgstr "" -#: ../src/widgets/toolbox.cpp:5219 +#: ../src/widgets/toolbox.cpp:5237 msgid "Pen Angle" msgstr "" -#: ../src/widgets/toolbox.cpp:5219 ../share/extensions/motion.inx.h:1 +#: ../src/widgets/toolbox.cpp:5237 ../share/extensions/motion.inx.h:1 #: ../share/extensions/restack.inx.h:1 msgid "Angle:" msgstr "" -#: ../src/widgets/toolbox.cpp:5220 +#: ../src/widgets/toolbox.cpp:5238 msgid "" "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " "fixation = 0)" msgstr "" #. Fixation -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(perpendicular to stroke, \"brush\")" msgstr "" -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(almost fixed, default)" msgstr "" -#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:5252 msgid "(fixed by Angle, \"pen\")" msgstr "" -#: ../src/widgets/toolbox.cpp:5237 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation" msgstr "" -#: ../src/widgets/toolbox.cpp:5237 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation:" msgstr "" -#: ../src/widgets/toolbox.cpp:5238 +#: ../src/widgets/toolbox.cpp:5256 msgid "" "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " "fixed angle)" msgstr "" #. Cap Rounding -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(blunt caps, default)" msgstr "" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(slightly bulging)" msgstr "" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(approximately round)" msgstr "" -#: ../src/widgets/toolbox.cpp:5250 +#: ../src/widgets/toolbox.cpp:5268 msgid "(long protruding caps)" msgstr "" -#: ../src/widgets/toolbox.cpp:5254 +#: ../src/widgets/toolbox.cpp:5272 msgid "Cap rounding" msgstr "" -#: ../src/widgets/toolbox.cpp:5254 +#: ../src/widgets/toolbox.cpp:5272 msgid "Caps:" msgstr "" -#: ../src/widgets/toolbox.cpp:5255 +#: ../src/widgets/toolbox.cpp:5273 msgid "" "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " "round caps)" msgstr "" #. Tremor -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(smooth line)" msgstr "" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(slight tremor)" msgstr "" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(noticeable tremor)" msgstr "" -#: ../src/widgets/toolbox.cpp:5267 +#: ../src/widgets/toolbox.cpp:5285 msgid "(maximum tremor)" msgstr "" -#: ../src/widgets/toolbox.cpp:5270 +#: ../src/widgets/toolbox.cpp:5288 msgid "Stroke Tremor" msgstr "" -#: ../src/widgets/toolbox.cpp:5270 +#: ../src/widgets/toolbox.cpp:5288 msgid "Tremor:" msgstr "" -#: ../src/widgets/toolbox.cpp:5271 +#: ../src/widgets/toolbox.cpp:5289 msgid "Increase to make strokes rugged and trembling" msgstr "" #. Wiggle -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(no wiggle)" msgstr "" -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(slight deviation)" msgstr "" -#: ../src/widgets/toolbox.cpp:5285 +#: ../src/widgets/toolbox.cpp:5303 msgid "(wild waves and curls)" msgstr "" -#: ../src/widgets/toolbox.cpp:5288 +#: ../src/widgets/toolbox.cpp:5306 msgid "Pen Wiggle" msgstr "" -#: ../src/widgets/toolbox.cpp:5288 +#: ../src/widgets/toolbox.cpp:5306 msgid "Wiggle:" msgstr "" -#: ../src/widgets/toolbox.cpp:5289 +#: ../src/widgets/toolbox.cpp:5307 msgid "Increase to make the pen waver and wiggle" msgstr "" #. Mass -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(no inertia)" msgstr "" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(slight smoothing, default)" msgstr "" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(noticeable lagging)" msgstr "" -#: ../src/widgets/toolbox.cpp:5302 +#: ../src/widgets/toolbox.cpp:5320 msgid "(maximum inertia)" msgstr "" -#: ../src/widgets/toolbox.cpp:5305 +#: ../src/widgets/toolbox.cpp:5323 msgid "Pen Mass" msgstr "" -#: ../src/widgets/toolbox.cpp:5305 +#: ../src/widgets/toolbox.cpp:5323 msgid "Mass:" msgstr "" -#: ../src/widgets/toolbox.cpp:5306 +#: ../src/widgets/toolbox.cpp:5324 msgid "Increase to make the pen drag behind, as if slowed by inertia" msgstr "" -#: ../src/widgets/toolbox.cpp:5321 +#: ../src/widgets/toolbox.cpp:5339 msgid "Trace Background" msgstr "" -#: ../src/widgets/toolbox.cpp:5322 +#: ../src/widgets/toolbox.cpp:5340 msgid "" "Trace the lightness of the background by the width of the pen (white - " "minimum width, black - maximum width)" msgstr "" -#: ../src/widgets/toolbox.cpp:5335 +#: ../src/widgets/toolbox.cpp:5353 msgid "Use the pressure of the input device to alter the width of the pen" msgstr "" -#: ../src/widgets/toolbox.cpp:5347 +#: ../src/widgets/toolbox.cpp:5365 msgid "Tilt" msgstr "" -#: ../src/widgets/toolbox.cpp:5348 +#: ../src/widgets/toolbox.cpp:5366 msgid "Use the tilt of the input device to alter the angle of the pen's nib" msgstr "" -#: ../src/widgets/toolbox.cpp:5363 +#: ../src/widgets/toolbox.cpp:5381 msgid "Choose a preset" msgstr "" -#: ../src/widgets/toolbox.cpp:5452 +#: ../src/widgets/toolbox.cpp:5470 msgid "Arc: Change start/end" msgstr "" -#: ../src/widgets/toolbox.cpp:5518 +#: ../src/widgets/toolbox.cpp:5536 msgid "Arc: Change open/closed" msgstr "" -#: ../src/widgets/toolbox.cpp:5645 +#: ../src/widgets/toolbox.cpp:5663 msgid "Start:" msgstr "" -#: ../src/widgets/toolbox.cpp:5646 +#: ../src/widgets/toolbox.cpp:5664 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "" -#: ../src/widgets/toolbox.cpp:5658 +#: ../src/widgets/toolbox.cpp:5676 msgid "End:" msgstr "" -#: ../src/widgets/toolbox.cpp:5659 +#: ../src/widgets/toolbox.cpp:5677 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "" -#: ../src/widgets/toolbox.cpp:5675 +#: ../src/widgets/toolbox.cpp:5693 msgid "Closed arc" msgstr "" -#: ../src/widgets/toolbox.cpp:5676 +#: ../src/widgets/toolbox.cpp:5694 msgid "Switch to segment (closed shape with two radii)" msgstr "" -#: ../src/widgets/toolbox.cpp:5682 +#: ../src/widgets/toolbox.cpp:5700 msgid "Open Arc" msgstr "" -#: ../src/widgets/toolbox.cpp:5683 +#: ../src/widgets/toolbox.cpp:5701 msgid "Switch to arc (unclosed shape)" msgstr "" -#: ../src/widgets/toolbox.cpp:5706 +#: ../src/widgets/toolbox.cpp:5724 msgid "Make whole" msgstr "" -#: ../src/widgets/toolbox.cpp:5707 +#: ../src/widgets/toolbox.cpp:5725 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "" -#: ../src/widgets/toolbox.cpp:5785 +#: ../src/widgets/toolbox.cpp:5803 msgid "Pick opacity" msgstr "" -#: ../src/widgets/toolbox.cpp:5786 +#: ../src/widgets/toolbox.cpp:5804 msgid "" "Pick both the color and the alpha (transparency) under cursor; otherwise, " "pick only the visible color premultiplied by alpha" msgstr "" -#: ../src/widgets/toolbox.cpp:5789 +#: ../src/widgets/toolbox.cpp:5807 msgid "Pick" msgstr "" -#: ../src/widgets/toolbox.cpp:5798 +#: ../src/widgets/toolbox.cpp:5816 msgid "Assign opacity" msgstr "" -#: ../src/widgets/toolbox.cpp:5799 +#: ../src/widgets/toolbox.cpp:5817 msgid "" "If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "" -#: ../src/widgets/toolbox.cpp:5802 +#: ../src/widgets/toolbox.cpp:5820 msgid "Assign" msgstr "" -#: ../src/widgets/toolbox.cpp:5987 +#: ../src/widgets/toolbox.cpp:6005 msgid "Closed" msgstr "" -#: ../src/widgets/toolbox.cpp:5989 +#: ../src/widgets/toolbox.cpp:6007 msgid "Open start" msgstr "" -#: ../src/widgets/toolbox.cpp:5991 +#: ../src/widgets/toolbox.cpp:6009 msgid "Open end" msgstr "" -#: ../src/widgets/toolbox.cpp:5993 +#: ../src/widgets/toolbox.cpp:6011 msgid "Open both" msgstr "" -#: ../src/widgets/toolbox.cpp:6052 +#: ../src/widgets/toolbox.cpp:6070 msgid "All inactive" msgstr "" -#: ../src/widgets/toolbox.cpp:6053 +#: ../src/widgets/toolbox.cpp:6071 msgid "No geometric tool is active" msgstr "" -#: ../src/widgets/toolbox.cpp:6086 +#: ../src/widgets/toolbox.cpp:6104 msgid "Show limiting bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:6087 +#: ../src/widgets/toolbox.cpp:6105 msgid "Show bounding box (used to cut infinite lines)" msgstr "" -#: ../src/widgets/toolbox.cpp:6098 +#: ../src/widgets/toolbox.cpp:6116 msgid "Get limiting bounding box from selection" msgstr "" -#: ../src/widgets/toolbox.cpp:6099 +#: ../src/widgets/toolbox.cpp:6117 msgid "" "Set limiting bounding box (used to cut infinite lines) to the bounding box " "of current selection" msgstr "" -#: ../src/widgets/toolbox.cpp:6111 +#: ../src/widgets/toolbox.cpp:6129 msgid "Choose a line segment type" msgstr "" -#: ../src/widgets/toolbox.cpp:6127 +#: ../src/widgets/toolbox.cpp:6145 msgid "Display measuring info" msgstr "" -#: ../src/widgets/toolbox.cpp:6128 +#: ../src/widgets/toolbox.cpp:6146 msgid "Display measuring info for selected items" msgstr "" -#: ../src/widgets/toolbox.cpp:6148 +#: ../src/widgets/toolbox.cpp:6166 msgid "Open LPE dialog" msgstr "" -#: ../src/widgets/toolbox.cpp:6149 +#: ../src/widgets/toolbox.cpp:6167 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "" -#: ../src/widgets/toolbox.cpp:6214 +#: ../src/widgets/toolbox.cpp:6232 msgid "Delete objects touched by the eraser" msgstr "" -#: ../src/widgets/toolbox.cpp:6220 +#: ../src/widgets/toolbox.cpp:6238 msgid "Cut" msgstr "" -#: ../src/widgets/toolbox.cpp:6221 +#: ../src/widgets/toolbox.cpp:6239 msgid "Cut out from objects" msgstr "" -#: ../src/widgets/toolbox.cpp:6249 +#: ../src/widgets/toolbox.cpp:6267 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "" -#: ../src/widgets/toolbox.cpp:6489 +#: ../src/widgets/toolbox.cpp:6507 msgid "Text: Change font family" msgstr "" -#: ../src/widgets/toolbox.cpp:6546 +#: ../src/widgets/toolbox.cpp:6564 msgid "Text: Change font size" msgstr "" -#: ../src/widgets/toolbox.cpp:6685 +#: ../src/widgets/toolbox.cpp:6703 msgid "Text: Change font style" msgstr "" -#: ../src/widgets/toolbox.cpp:6764 +#: ../src/widgets/toolbox.cpp:6782 msgid "Text: Change superscript or subscript" msgstr "" -#: ../src/widgets/toolbox.cpp:6910 +#: ../src/widgets/toolbox.cpp:6928 msgid "Text: Change alignment" msgstr "" -#: ../src/widgets/toolbox.cpp:6953 +#: ../src/widgets/toolbox.cpp:6971 msgid "Text: Change line-height" msgstr "" -#: ../src/widgets/toolbox.cpp:7002 +#: ../src/widgets/toolbox.cpp:7020 msgid "Text: Change word-spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:7044 +#: ../src/widgets/toolbox.cpp:7062 msgid "Text: Change letter-spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:7085 +#: ../src/widgets/toolbox.cpp:7103 msgid "Text: Change dx (kern)" msgstr "" -#: ../src/widgets/toolbox.cpp:7119 +#: ../src/widgets/toolbox.cpp:7137 msgid "Text: Change dy" msgstr "" -#: ../src/widgets/toolbox.cpp:7154 +#: ../src/widgets/toolbox.cpp:7172 msgid "Text: Change rotate" msgstr "" -#: ../src/widgets/toolbox.cpp:7202 +#: ../src/widgets/toolbox.cpp:7220 msgid "Text: Change orientation" msgstr "" -#: ../src/widgets/toolbox.cpp:7567 +#: ../src/widgets/toolbox.cpp:7585 msgid "Font Family" msgstr "" -#: ../src/widgets/toolbox.cpp:7568 +#: ../src/widgets/toolbox.cpp:7586 msgid "Select Font Family (Alt-X to access)" msgstr "" @@ -23436,355 +23506,355 @@ msgstr "" #. Extra list width #. Cell layout #. Enable entry completion -#: ../src/widgets/toolbox.cpp:7575 +#: ../src/widgets/toolbox.cpp:7593 msgid "Font not found on system" msgstr "" -#: ../src/widgets/toolbox.cpp:7608 +#: ../src/widgets/toolbox.cpp:7626 msgid "Font size (px)" msgstr "" #. Name -#: ../src/widgets/toolbox.cpp:7620 +#: ../src/widgets/toolbox.cpp:7638 msgid "Toggle Bold" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7621 +#: ../src/widgets/toolbox.cpp:7639 msgid "Toggle bold or normal weight" msgstr "" #. Name -#: ../src/widgets/toolbox.cpp:7633 +#: ../src/widgets/toolbox.cpp:7651 msgid "Toggle Italic/Oblique" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7634 +#: ../src/widgets/toolbox.cpp:7652 msgid "Toggle italic/oblique style" msgstr "" #. Name -#: ../src/widgets/toolbox.cpp:7646 +#: ../src/widgets/toolbox.cpp:7664 msgid "Toggle Superscript" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7647 +#: ../src/widgets/toolbox.cpp:7665 msgid "Toggle superscript" msgstr "" #. Name -#: ../src/widgets/toolbox.cpp:7659 +#: ../src/widgets/toolbox.cpp:7677 msgid "Toggle Subscript" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7660 +#: ../src/widgets/toolbox.cpp:7678 msgid "Toggle subscript" msgstr "" -#: ../src/widgets/toolbox.cpp:7677 ../src/widgets/toolbox.cpp:7678 +#: ../src/widgets/toolbox.cpp:7695 ../src/widgets/toolbox.cpp:7696 msgid "Align left" msgstr "" -#: ../src/widgets/toolbox.cpp:7685 ../src/widgets/toolbox.cpp:7686 +#: ../src/widgets/toolbox.cpp:7703 ../src/widgets/toolbox.cpp:7704 msgid "Align center" msgstr "" -#: ../src/widgets/toolbox.cpp:7693 ../src/widgets/toolbox.cpp:7694 +#: ../src/widgets/toolbox.cpp:7711 ../src/widgets/toolbox.cpp:7712 msgid "Align right" msgstr "" -#: ../src/widgets/toolbox.cpp:7701 +#: ../src/widgets/toolbox.cpp:7719 msgid "Justify" msgstr "" -#: ../src/widgets/toolbox.cpp:7702 +#: ../src/widgets/toolbox.cpp:7720 msgid "Justify (only flowed text)" msgstr "" #. Name -#: ../src/widgets/toolbox.cpp:7708 +#: ../src/widgets/toolbox.cpp:7726 msgid "Alignment" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7709 +#: ../src/widgets/toolbox.cpp:7727 msgid "Text alignment" msgstr "" -#: ../src/widgets/toolbox.cpp:7736 +#: ../src/widgets/toolbox.cpp:7754 msgid "Horizontal" msgstr "" -#: ../src/widgets/toolbox.cpp:7743 +#: ../src/widgets/toolbox.cpp:7761 msgid "Vertical" msgstr "" #. Label -#: ../src/widgets/toolbox.cpp:7750 +#: ../src/widgets/toolbox.cpp:7768 msgid "Text orientation" msgstr "" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7773 +#: ../src/widgets/toolbox.cpp:7791 msgid "Smaller spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:7773 ../src/widgets/toolbox.cpp:7804 -#: ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7791 ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgctxt "Text tool" msgid "Normal" msgstr "" -#: ../src/widgets/toolbox.cpp:7773 +#: ../src/widgets/toolbox.cpp:7791 msgid "Larger spacing" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7778 +#: ../src/widgets/toolbox.cpp:7796 msgid "Line Height" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7779 +#: ../src/widgets/toolbox.cpp:7797 msgid "Line:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7780 +#: ../src/widgets/toolbox.cpp:7798 msgid "Spacing between lines (times font size)" msgstr "" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7804 ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7822 ../src/widgets/toolbox.cpp:7853 msgid "Negative spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:7804 ../src/widgets/toolbox.cpp:7835 +#: ../src/widgets/toolbox.cpp:7822 ../src/widgets/toolbox.cpp:7853 msgid "Positive spacing" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7809 +#: ../src/widgets/toolbox.cpp:7827 msgid "Word spacing" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7810 +#: ../src/widgets/toolbox.cpp:7828 msgid "Word:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7811 +#: ../src/widgets/toolbox.cpp:7829 msgid "Spacing between words (px)" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7840 +#: ../src/widgets/toolbox.cpp:7858 msgid "Letter spacing" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7841 +#: ../src/widgets/toolbox.cpp:7859 msgid "Letter:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7842 +#: ../src/widgets/toolbox.cpp:7860 msgid "Spacing between letters (px)" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7871 +#: ../src/widgets/toolbox.cpp:7889 msgid "Kerning" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7872 +#: ../src/widgets/toolbox.cpp:7890 msgid "Kern:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7873 +#: ../src/widgets/toolbox.cpp:7891 msgid "Horizontal kerning (px)" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7902 +#: ../src/widgets/toolbox.cpp:7920 msgid "Vertical Shift" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7903 +#: ../src/widgets/toolbox.cpp:7921 msgid "Vert:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7904 +#: ../src/widgets/toolbox.cpp:7922 msgid "Vertical shift (px)" msgstr "" #. name -#: ../src/widgets/toolbox.cpp:7933 +#: ../src/widgets/toolbox.cpp:7951 msgid "Letter rotation" msgstr "" #. label -#: ../src/widgets/toolbox.cpp:7934 +#: ../src/widgets/toolbox.cpp:7952 msgid "Rot:" msgstr "" #. short label -#: ../src/widgets/toolbox.cpp:7935 +#: ../src/widgets/toolbox.cpp:7953 msgid "Character rotation (degrees)" msgstr "" -#: ../src/widgets/toolbox.cpp:8050 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: orthogonal" msgstr "" -#: ../src/widgets/toolbox.cpp:8050 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: polyline" msgstr "" -#: ../src/widgets/toolbox.cpp:8099 +#: ../src/widgets/toolbox.cpp:8117 msgid "Change connector curvature" msgstr "" -#: ../src/widgets/toolbox.cpp:8150 +#: ../src/widgets/toolbox.cpp:8168 msgid "Change connector spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:8264 +#: ../src/widgets/toolbox.cpp:8282 msgid "EditMode" msgstr "" -#: ../src/widgets/toolbox.cpp:8265 +#: ../src/widgets/toolbox.cpp:8283 msgid "Switch between connection point editing and connector drawing mode" msgstr "" -#: ../src/widgets/toolbox.cpp:8279 +#: ../src/widgets/toolbox.cpp:8297 msgid "Avoid" msgstr "" -#: ../src/widgets/toolbox.cpp:8289 +#: ../src/widgets/toolbox.cpp:8307 msgid "Ignore" msgstr "" -#: ../src/widgets/toolbox.cpp:8300 +#: ../src/widgets/toolbox.cpp:8318 msgid "Orthogonal" msgstr "" -#: ../src/widgets/toolbox.cpp:8301 +#: ../src/widgets/toolbox.cpp:8319 msgid "Make connector orthogonal or polyline" msgstr "" -#: ../src/widgets/toolbox.cpp:8315 +#: ../src/widgets/toolbox.cpp:8333 msgid "Connector Curvature" msgstr "" -#: ../src/widgets/toolbox.cpp:8315 +#: ../src/widgets/toolbox.cpp:8333 msgid "Curvature:" msgstr "" -#: ../src/widgets/toolbox.cpp:8316 +#: ../src/widgets/toolbox.cpp:8334 msgid "The amount of connectors curvature" msgstr "" -#: ../src/widgets/toolbox.cpp:8326 +#: ../src/widgets/toolbox.cpp:8344 msgid "Connector Spacing" msgstr "" -#: ../src/widgets/toolbox.cpp:8326 +#: ../src/widgets/toolbox.cpp:8344 msgid "Spacing:" msgstr "" -#: ../src/widgets/toolbox.cpp:8327 +#: ../src/widgets/toolbox.cpp:8345 msgid "The amount of space left around objects by auto-routing connectors" msgstr "" -#: ../src/widgets/toolbox.cpp:8338 +#: ../src/widgets/toolbox.cpp:8356 msgid "Graph" msgstr "" -#: ../src/widgets/toolbox.cpp:8348 +#: ../src/widgets/toolbox.cpp:8366 msgid "Connector Length" msgstr "" -#: ../src/widgets/toolbox.cpp:8349 +#: ../src/widgets/toolbox.cpp:8367 msgid "Ideal length for connectors when layout is applied" msgstr "" -#: ../src/widgets/toolbox.cpp:8361 +#: ../src/widgets/toolbox.cpp:8379 msgid "Downwards" msgstr "" -#: ../src/widgets/toolbox.cpp:8362 +#: ../src/widgets/toolbox.cpp:8380 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "" -#: ../src/widgets/toolbox.cpp:8378 +#: ../src/widgets/toolbox.cpp:8396 msgid "Do not allow overlapping shapes" msgstr "" -#: ../src/widgets/toolbox.cpp:8393 +#: ../src/widgets/toolbox.cpp:8411 msgid "New connection point" msgstr "" -#: ../src/widgets/toolbox.cpp:8394 +#: ../src/widgets/toolbox.cpp:8412 msgid "Add a new connection point to the currently selected item" msgstr "" -#: ../src/widgets/toolbox.cpp:8405 +#: ../src/widgets/toolbox.cpp:8423 msgid "Remove connection point" msgstr "" -#: ../src/widgets/toolbox.cpp:8406 +#: ../src/widgets/toolbox.cpp:8424 msgid "Remove the currently selected connection point" msgstr "" -#: ../src/widgets/toolbox.cpp:8508 +#: ../src/widgets/toolbox.cpp:8526 msgid "Fill by" msgstr "" -#: ../src/widgets/toolbox.cpp:8509 +#: ../src/widgets/toolbox.cpp:8527 msgid "Fill by:" msgstr "" -#: ../src/widgets/toolbox.cpp:8521 +#: ../src/widgets/toolbox.cpp:8539 msgid "Fill Threshold" msgstr "" -#: ../src/widgets/toolbox.cpp:8522 +#: ../src/widgets/toolbox.cpp:8540 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" msgstr "" -#: ../src/widgets/toolbox.cpp:8548 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by" msgstr "" -#: ../src/widgets/toolbox.cpp:8548 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by:" msgstr "" -#: ../src/widgets/toolbox.cpp:8549 +#: ../src/widgets/toolbox.cpp:8567 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" -#: ../src/widgets/toolbox.cpp:8574 +#: ../src/widgets/toolbox.cpp:8592 msgid "Close gaps" msgstr "" -#: ../src/widgets/toolbox.cpp:8575 +#: ../src/widgets/toolbox.cpp:8593 msgid "Close gaps:" msgstr "" -#: ../src/widgets/toolbox.cpp:8587 +#: ../src/widgets/toolbox.cpp:8605 msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" @@ -24658,7 +24728,55 @@ msgstr "" msgid "Pressure angle (degrees):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:1 +#: ../share/extensions/gcodetools_about.inx.h:1 +msgid "About" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +#: ../share/extensions/gcodetools_tools_library.inx.h:2 +msgid "" +"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " +"makes offset paths and engraves sharp corners using cone cutters. This plug-" +"in calculates Gcode for paths using circular interpolation or linear motion " +"when needed. Tutorials, manuals and support can be found at English support " +"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" +"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " +"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:4 +msgid "" +"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " +"is a special format which is used in most of CNC machines. So Gcodetools " +"allows you to use Inkscape as CAM program. It can be use with a lot of " +"machone types: Mills Lathes Laser and Palsma cutters and engravers Mill " +"engravers Plotters etc. To get more info visit developers page at http://www." +"cnc-club.ru/gcodetools" +msgstr "" + #: ../share/extensions/gcodetools_area.inx.h:1 msgid "" "\"Create area offset\": creates several Inkscape path offsets to fill " @@ -24668,82 +24786,322 @@ msgid "" "be created if the \"Area width\" is equal to \"1/2 D\"." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:2 -#: ../share/extensions/gcodetools_orientation_points.inx.h:1 -msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +#: ../share/extensions/gcodetools_area.inx.h:2 +msgid "Action:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:3 -#: ../share/extensions/gcodetools_orientation_points.inx.h:2 -msgid "3-points mode (move, rotate and mirror, different X/Y scale)" -msgstr "" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:4 -#: ../share/extensions/gcodetools_area.inx.h:2 -msgid "Action:" -msgstr "" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:5 #: ../share/extensions/gcodetools_area.inx.h:3 #: ../share/extensions/gcodetools_dxf_points.inx.h:1 -#: ../share/extensions/gcodetools_engraving.inx.h:1 +#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_graffiti.inx.h:3 #: ../share/extensions/gcodetools_lathe.inx.h:1 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 msgid "Add numeric suffix to filename" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:6 #: ../share/extensions/gcodetools_area.inx.h:4 #: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_engraving.inx.h:3 +#: ../share/extensions/gcodetools_graffiti.inx.h:4 #: ../share/extensions/gcodetools_lathe.inx.h:2 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 msgid "Additional post-processor:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:7 -msgid "All in one" -msgstr "" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:8 #: ../share/extensions/gcodetools_area.inx.h:5 msgid "Area" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:9 #: ../share/extensions/gcodetools_area.inx.h:6 -msgid "Area artefacts" +msgid "Area artifacts" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:10 #: ../share/extensions/gcodetools_area.inx.h:7 -msgid "Area width:" +msgid "Area fill anlge" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:11 #: ../share/extensions/gcodetools_area.inx.h:8 -msgid "Artefact diameter:" +msgid "Area fill shift" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:12 #: ../share/extensions/gcodetools_area.inx.h:9 +msgid "Area tool overlap (0..0.9):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:10 +msgid "Area width:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:11 +msgid "Artifact diameter:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:12 #: ../share/extensions/gcodetools_lathe.inx.h:3 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 msgid "" "Biarc interpolation tolerance is the maximum distance between path and its " "approximation. The segment will be split into two segments if the distance " -"between path's segment and it's approximation exceeds biarc interpolation " -"tolerance." +"between path's segment and its approximation exceeds biarc interpolation " +"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " +"(black), d is the depth defined by orientation points, s - surface defined " +"by orientation points." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:13 -#: ../share/extensions/gcodetools_area.inx.h:10 +#: ../share/extensions/gcodetools_area.inx.h:13 #: ../share/extensions/gcodetools_lathe.inx.h:4 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 msgid "Biarc interpolation tolerance:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:14 +#: ../share/extensions/gcodetools_area.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:4 +#: ../share/extensions/gcodetools_graffiti.inx.h:5 +#: ../share/extensions/gcodetools_lathe.inx.h:5 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 +msgid "Comment Gcode:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:7 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +msgid "Cutting order" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:8 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +msgid "Depth function:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_engraving.inx.h:5 +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +#: ../share/extensions/gcodetools_lathe.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 +msgid "Directory:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:18 +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_lathe.inx.h:10 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Fast pre-penetrate" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_lathe.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "File:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:20 +msgid "Fill area" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:21 +msgid "Filling method" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +msgid "Flip y axis and parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +msgid "Full path to log file:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +msgid "Generate log file" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Get additional comments from object's properties" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:29 +msgid "Maximum area cutting curves:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +msgid "Maximum splitting depth:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +msgid "Minimum arc radius:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +msgid "Offset along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +msgid "Parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Pass by Pass" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +msgid "Path by path" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 +msgid "Path to Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 +msgid "Post-processor:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +msgid "Preferences" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +msgid "Round all values to 4 digits" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +msgid "Scale along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +msgid "Select all paths if nothing is selected" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Sort paths to reduse rapid distance" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Units (mm or in):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:48 +msgid "" +"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" +"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " +"colored arrows." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +msgid "Z safe height for G00 move over blank:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:50 +msgid "Zig zag" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:51 +msgid "delete" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:53 +msgid "mark with an arrow" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:54 +msgid "mark with style" +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for Gcodetools latest stable version and try to get the updates." +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for updates" +msgstr "" + #: ../share/extensions/gcodetools_dxf_points.inx.h:3 msgid "" "Convert selected objects to drill points (as dxf_import plugin does). Also " @@ -24752,136 +25110,88 @@ msgid "" "and add or remove XML tag 'dxfpoint' with any value." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:15 #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "Convert selection:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 msgid "DXF points" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:17 -#: ../share/extensions/gcodetools_area.inx.h:11 -#: ../share/extensions/gcodetools_dxf_points.inx.h:7 -#: ../share/extensions/gcodetools_engraving.inx.h:3 -#: ../share/extensions/gcodetools_lathe.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -msgid "Directory:" +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +msgid "clear dxfpoint sign" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:18 -msgid "Draw additional graphics to debug engraving path:" +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +msgid "set as dxfpoint and draw arrow" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:19 -#: ../share/extensions/gcodetools_engraving.inx.h:5 -msgid "Engraving" +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +msgid "set as dxfpoint and save shape" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:1 +msgid "Accuracy factor (2 low to 10 high):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:20 -#: ../share/extensions/gcodetools_area.inx.h:12 -#: ../share/extensions/gcodetools_dxf_points.inx.h:8 #: ../share/extensions/gcodetools_engraving.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 -msgid "File:" +msgid "Draw additional graphics to see engraving path" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:21 -#: ../share/extensions/gcodetools_area.inx.h:13 -#: ../share/extensions/gcodetools_dxf_points.inx.h:9 #: ../share/extensions/gcodetools_engraving.inx.h:7 -#: ../share/extensions/gcodetools_lathe.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 -msgid "Full path to log file:" +msgid "Engraving" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:22 -#: ../share/extensions/gcodetools_area.inx.h:14 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:10 -#: ../share/extensions/gcodetools_engraving.inx.h:8 -#: ../share/extensions/gcodetools_lathe.inx.h:11 -#: ../share/extensions/gcodetools_orientation_points.inx.h:3 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -#: ../share/extensions/gcodetools_tools_library.inx.h:1 -msgid "Gcodetools" +#: ../share/extensions/gcodetools_engraving.inx.h:17 +msgid "Maximum distance for engraving (mm/inch):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:23 -#: ../share/extensions/gcodetools_area.inx.h:15 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 -#: ../share/extensions/gcodetools_dxf_points.inx.h:11 -#: ../share/extensions/gcodetools_engraving.inx.h:9 -#: ../share/extensions/gcodetools_lathe.inx.h:12 -#: ../share/extensions/gcodetools_orientation_points.inx.h:4 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 -#: ../share/extensions/gcodetools_tools_library.inx.h:2 -msgid "" -"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " -"makes offset paths and engraves sharp corners using cone cutters. This plug-" -"in calculates Gcode for paths using circular interpolation or linear motion " -"when needed. Tutorials, manuals and support can be found at English support " -"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" -"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " -"John Brooker, Henry Nicolas. Gcodetools ver. 1.6.01" +#: ../share/extensions/gcodetools_engraving.inx.h:28 +msgid "Smooth convex corners between this value and 180 degrees:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:24 -#: ../share/extensions/gcodetools_area.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:12 -#: ../share/extensions/gcodetools_engraving.inx.h:10 -#: ../share/extensions/gcodetools_lathe.inx.h:13 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 -msgid "Generate log file" +#: ../share/extensions/gcodetools_engraving.inx.h:29 +msgid "" +"This function creates path to engrave letters or any shape with sharp " +"angles. Cutter's depth as a function of radius is defined by the tool. Depth " +"may be any Python expression. For instance: cone....(45 " +"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " +"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " +"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:26 -#: ../share/extensions/gcodetools_tools_library.inx.h:4 -msgid "Just check tools" +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:27 -#: ../share/extensions/gcodetools_area.inx.h:18 -msgid "Maximum area cutting curves:" +#: ../share/extensions/gcodetools_graffiti.inx.h:2 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:28 -#: ../share/extensions/gcodetools_engraving.inx.h:12 -msgid "Maximum distance for engraving:" +#: ../share/extensions/gcodetools_graffiti.inx.h:6 +msgid "Create linearization preview" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:29 -#: ../share/extensions/gcodetools_area.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:19 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 -msgid "Maximum splitting depth:" +#: ../share/extensions/gcodetools_graffiti.inx.h:7 +msgid "Create preview" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:30 -#: ../share/extensions/gcodetools_area.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:13 -#: ../share/extensions/gcodetools_lathe.inx.h:20 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 -msgid "Minimum arc radius:" +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +msgid "Graffiti" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:31 -#: ../share/extensions/gcodetools_engraving.inx.h:14 -msgid "Number of sample points used to calculate distance:" +#: ../share/extensions/gcodetools_graffiti.inx.h:19 +msgid "Maximum segment length:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:32 -#: ../share/extensions/gcodetools_area.inx.h:21 -#: ../share/extensions/gcodetools_engraving.inx.h:15 -#: ../share/extensions/gcodetools_lathe.inx.h:21 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 -msgid "Offset along Z axis:" +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +msgid "Minimal connector radius:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:35 -#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 msgid "" "Orientation points are used to calculate transformation (offset,scale,mirror," "rotation in XY plane) of the path. 3-points mode only: do not put all three " @@ -24893,233 +25203,191 @@ msgid "" "(independent set for each layer)." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:36 -#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 msgid "Orientation type:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:37 -#: ../share/extensions/gcodetools_area.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:23 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 -msgid "Path to Gcode" +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +msgid "Preview's paint emmit (pts/s):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:38 -#: ../share/extensions/gcodetools_area.inx.h:24 -#: ../share/extensions/gcodetools_dxf_points.inx.h:14 -#: ../share/extensions/gcodetools_engraving.inx.h:17 -#: ../share/extensions/gcodetools_lathe.inx.h:24 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 -msgid "Post-processor:" +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +msgid "Preview's size (px):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:39 -#: ../share/extensions/gcodetools_area.inx.h:25 -#: ../share/extensions/gcodetools_dxf_points.inx.h:15 -#: ../share/extensions/gcodetools_engraving.inx.h:18 -#: ../share/extensions/gcodetools_lathe.inx.h:25 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 -msgid "Preferences" +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +msgid "Start position (x;y):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:40 -#: ../share/extensions/gcodetools_area.inx.h:26 -#: ../share/extensions/gcodetools_engraving.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:26 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 -msgid "Scale along Z axis:" +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +msgid "Z depth:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:41 -#: ../share/extensions/gcodetools_area.inx.h:27 -#: ../share/extensions/gcodetools_engraving.inx.h:20 -#: ../share/extensions/gcodetools_lathe.inx.h:27 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 -msgid "Select all paths if nothing is selected" +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 +msgid "Z surface:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:42 -#: ../share/extensions/gcodetools_tools_library.inx.h:5 -msgid "" -"Selected tool type fills appropriate default values. You can change these " -"values using the Text tool later on. The topmost (z order) tool in the " -"active layer is used. If there is no tool inside the current layer it is " -"taken from the upper layer. Press Apply to create new tool." +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +msgid "graffiti points" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:43 -#: ../share/extensions/gcodetools_engraving.inx.h:21 -msgid "Sharp angle tolerance:" +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +msgid "in-out reference point" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:44 -#: ../share/extensions/gcodetools_engraving.inx.h:22 -msgid "" -"This function creates path to engrave sharp angles. Cutter's shape function " -"is defined by the tool. Some simple shapes: cone....(45 degrees)...........: " -"w cone....(height/diameter=10/3).: 10/3 w sphere..(\"r\" diameter).........: " -"math.sqrt(max(0,r**2-w**2)) ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0," -"r**2-w**2))*4" +#: ../share/extensions/gcodetools_lathe.inx.h:6 +msgid "Create fine cut using:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:45 -#: ../share/extensions/gcodetools_tools_library.inx.h:6 -msgid "Tools library" +#: ../share/extensions/gcodetools_lathe.inx.h:12 +msgid "Fine cut count:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:46 -#: ../share/extensions/gcodetools_tools_library.inx.h:7 -msgid "Tools type:" +#: ../share/extensions/gcodetools_lathe.inx.h:13 +msgid "Fine cut width:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:47 -#: ../share/extensions/gcodetools_area.inx.h:28 -#: ../share/extensions/gcodetools_dxf_points.inx.h:16 -#: ../share/extensions/gcodetools_engraving.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:28 -#: ../share/extensions/gcodetools_orientation_points.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -msgid "Units (mm or in):" +#: ../share/extensions/gcodetools_lathe.inx.h:21 +msgid "Lathe" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:48 -#: ../share/extensions/gcodetools_area.inx.h:29 -msgid "" -"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" -"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " -"colored arrows." +#: ../share/extensions/gcodetools_lathe.inx.h:22 +msgid "Lathe X axis remap:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:49 -#: ../share/extensions/gcodetools_orientation_points.inx.h:11 -msgid "Z depth:" +#: ../share/extensions/gcodetools_lathe.inx.h:23 +msgid "Lathe Z axis remap:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:50 -#: ../share/extensions/gcodetools_area.inx.h:30 -#: ../share/extensions/gcodetools_dxf_points.inx.h:17 -#: ../share/extensions/gcodetools_engraving.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:29 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 -msgid "Z safe height for G00 move over blank:" +#: ../share/extensions/gcodetools_lathe.inx.h:24 +msgid "Lathe modify path" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:51 -#: ../share/extensions/gcodetools_orientation_points.inx.h:12 -msgid "Z surface:" +#: ../share/extensions/gcodetools_lathe.inx.h:25 +msgid "Lathe width:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:52 -#: ../share/extensions/gcodetools_dxf_points.inx.h:18 -msgid "clear dxfpoint sign" +#: ../share/extensions/gcodetools_lathe.inx.h:28 +msgid "Move path" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:53 -#: ../share/extensions/gcodetools_tools_library.inx.h:8 -msgid "cone" +#: ../share/extensions/gcodetools_lathe.inx.h:44 +msgid "" +"This function modifies path so it will be able to be cut with the " +"rectangular cutter." msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:54 -#: ../share/extensions/gcodetools_tools_library.inx.h:9 -msgid "cylinder" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "-------------------------------------------------" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:55 -#: ../share/extensions/gcodetools_tools_library.inx.h:10 -msgid "default" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 +msgid "Create in-out paths" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:56 -#: ../share/extensions/gcodetools_area.inx.h:31 -msgid "delete" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +msgid "Do not add in-out reference points" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:57 -#: ../share/extensions/gcodetools_tools_library.inx.h:11 -msgid "lathe cutter" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +msgid "In-out path length:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:58 -#: ../share/extensions/gcodetools_area.inx.h:32 -msgid "mark with an arrow" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +msgid "In-out path max distance to reference point:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:59 -#: ../share/extensions/gcodetools_area.inx.h:33 -msgid "mark with style" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "In-out path radius for round path:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:60 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 -msgid "plasma" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 +msgid "In-out path type:" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:61 -#: ../share/extensions/gcodetools_dxf_points.inx.h:19 -msgid "set as dxfpoint and draw arrow" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +msgid "Maximum angle for corner (0-180 deg):" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:62 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -msgid "set as dxfpoint and save shape" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 +msgid "Perpendicular" msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:63 -#: ../share/extensions/gcodetools_tools_library.inx.h:13 -msgid "tangent knife" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +msgid "Prepare corners" msgstr "" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 -msgid "Check for Gcodetools latest stable version and try to get the updates." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 +msgid "Prepare path for plasma or laser cuters" msgstr "" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 -msgid "Check for updates" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 +msgid "Replace original path" msgstr "" -#: ../share/extensions/gcodetools_dxf_points.inx.h:5 -msgid "DXF Points" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 +msgid "Round" msgstr "" -#: ../share/extensions/gcodetools_engraving.inx.h:4 -msgid "Draw additional graphics to debug engraving path" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +msgid "Stepout distance for corners:" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:5 -msgid "Create fine cut using:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +msgid "Tangent" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:7 -msgid "File" +#: ../share/extensions/gcodetools_tools_library.inx.h:4 +msgid "Just check tools" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:8 -msgid "Fine cut count:" +#: ../share/extensions/gcodetools_tools_library.inx.h:5 +msgid "" +"Selected tool type fills appropriate default values. You can change these " +"values using the Text tool later on. The topmost (z order) tool in the " +"active layer is used. If there is no tool inside the current layer it is " +"taken from the upper layer. Press Apply to create new tool." msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:9 -msgid "Fine cut width:" +#: ../share/extensions/gcodetools_tools_library.inx.h:6 +msgid "Tools library" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:15 -msgid "Lathe" +#: ../share/extensions/gcodetools_tools_library.inx.h:7 +msgid "Tools type:" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:16 -msgid "Lathe X axis remap:" +#: ../share/extensions/gcodetools_tools_library.inx.h:8 +msgid "cone" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:17 -msgid "Lathe Z axis remap:" +#: ../share/extensions/gcodetools_tools_library.inx.h:9 +msgid "cylinder" msgstr "" -#: ../share/extensions/gcodetools_lathe.inx.h:18 -msgid "Lathe width:" +#: ../share/extensions/gcodetools_tools_library.inx.h:10 +msgid "default" msgstr "" -#: ../share/extensions/gcodetools_orientation_points.inx.h:7 -msgid "Orientation points" +#: ../share/extensions/gcodetools_tools_library.inx.h:11 +msgid "graffiti" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +msgid "lathe cutter" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:13 +msgid "plasma" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:14 +msgid "tangent knife" msgstr "" #: ../share/extensions/generate_voronoi.inx.h:1 diff --git a/src/extension/internal/filter/abc.h b/src/extension/internal/filter/abc.h index 8368d3f3b..cf2bc8927 100755 --- a/src/extension/internal/filter/abc.h +++ b/src/extension/internal/filter/abc.h @@ -218,7 +218,7 @@ ColorShift::get_filter_text (Inkscape::Extension::Extension * ext) * Smoothness (0.->10., default 6.) -> blur (stdDeviation) * Elevation (0->360, default 25) -> feDistantLight (elevation) * Azimuth (0->360, default 235) -> feDistantLight (azimuth) - * Lightning color (guint, default -1 [white]) -> diffuse (lighting-color) + * Lighting color (guint, default -1 [white]) -> diffuse (lighting-color) */ class DiffuseLight : public Inkscape::Extension::Internal::Filter::Filter { @@ -237,7 +237,7 @@ public: "6\n" "25\n" "235\n" - "-1\n" + "-1\n" "\n" "all\n" "\n" @@ -355,7 +355,7 @@ Feather::get_filter_text (Inkscape::Extension::Extension * ext) * Brightness (0.0->5., default .9) -> specular (specularConstant) * Elevation (0->360, default 60) -> feDistantLight (elevation) * Azimuth (0->360, default 225) -> feDistantLight (azimuth) - * Lightning color (guint, default -1 [white]) -> specular (lighting-color) + * Lighting color (guint, default -1 [white]) -> specular (lighting-color) */ class MatteJelly : public Inkscape::Extension::Internal::Filter::Filter { @@ -375,7 +375,7 @@ public: "0.9\n" "60\n" "225\n" - "-1\n" + "-1\n" "\n" "all\n" "\n" @@ -795,7 +795,7 @@ Silhouette::get_filter_text (Inkscape::Extension::Extension * ext) * Brightness (0.0->5., default 1.) -> specular (specularConstant) * Elevation (0->360, default 45) -> feDistantLight (elevation) * Azimuth (0->360, default 235) -> feDistantLight (azimuth) - * Lightning color (guint, default -1 [white]) -> specular (lighting-color) + * Lighting color (guint, default -1 [white]) -> specular (lighting-color) */ class SpecularLight : public Inkscape::Extension::Internal::Filter::Filter { @@ -815,7 +815,7 @@ public: "1\n" "45\n" "235\n" - "-1\n" + "-1\n" "\n" "all\n" "\n" -- cgit v1.2.3 From 234349b12abbd7e6360fa461faeb92ed1217fbfa Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sun, 10 Jul 2011 20:53:04 +0200 Subject: Tutorials. New Greek translation of Basic by dimitris Spingos. (bzr r10437.1.4) --- share/tutorials/Makefile.am | 1 + share/tutorials/tutorial-basic.el.svg | 697 ++++++++++++++++++++++++++++++++++ 2 files changed, 698 insertions(+) create mode 100644 share/tutorials/tutorial-basic.el.svg diff --git a/share/tutorials/Makefile.am b/share/tutorials/Makefile.am index 2b4633c22..4901ec30b 100644 --- a/share/tutorials/Makefile.am +++ b/share/tutorials/Makefile.am @@ -57,6 +57,7 @@ tutorial_DATA = \ tutorial-basic.cs.svg \ tutorial-basic.da.svg \ tutorial-basic.de.svg \ + tutorial-basic.el.svg \ tutorial-basic.eo.svg \ tutorial-basic.es.svg \ tutorial-basic.eu.svg \ diff --git a/share/tutorials/tutorial-basic.el.svg b/share/tutorials/tutorial-basic.el.svg new file mode 100644 index 000000000..03e53be07 --- /dev/null +++ b/share/tutorials/tutorial-basic.el.svg @@ -0,0 +1,697 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + Use Ctrl+down arrow to scroll + + + + ::ΤΑ ΒΑΣΙΚΆ + + + + + + + + Αυτό το μάθημα δείχνει τα βασικά της χρήσης του Inkscape. Αυτό είναι ένα κανονικό έγγραφο Inkscape που μπορείτε να δείτε, να επεξεργασθείτε, να αντιγράψετε ή να αποθηκεύσετε. + + + + + + + Το βασικό μάθημα καλύπτει περιήγηση καμβά, διαχείριση εγγράφων, βασικά εργαλεία σχημάτων, τεχνικές επιλογής, μετασχηματισμός αντικειμένων με επιλογέα, ομαδοποίηση, ορισμός γεμίσματος και πινελιάς, ευθυγράμμιση και διάταξη-z. Για πιο προχωρημένα θέματα, κοιτάξτε τα άλλα μαθήματα στο μενού βοήθειας. + + + Μετακίνηση στον καμβά + + + + + + + Υπάρχουν πολλοί τρόποι για μετακίνηση (κύλιση) του καμβά του εγγράφου. Δοκιμάστε τα πλήκτρα Ctrl+βέλος για κύλιση με το πληκτρολόγιο. (Δοκιμάστε το τώρα να κυλίσετε αυτό το έγγραφο προς τα κάτω). Μπορείτε επίσης να σύρετε τον καμβά με το μεσαίο πλήκτρο του ποντικιού. Ή, μπορείτε να χρησιμοποιήσετε τις γραμμές κύλισης (πατήστε Ctrl+B για να εμφανίσετε ή να τις αποκρύψετε). Ο τροχός στο ποντίκι σας επίσης δουλεύει για κατακόρυφη κύλιση. Πατήστε Shift με τον τροχό να για οριζόντια κύλιση. + + + Μεγέθυνση και σμίκρυνση + + + + + + + Ο πιο εύκολος τρόπος εστίασης είναι πιέζοντας τα πλήκτρα - και +=). Μπορείτε επίσης να χρησιμοποιήσετε Ctrl+μεσαίο κλικ ή Ctrl+δεξί κλικ για μεγέθυνση, Shift+μεσαίο κλικ or Shift+δεξί κλικ για σμίκρυνση, ή περιστροφή του τροχού ποντικιού με Ctrl. Ή, μπορείτε να πατήσετε στο πεδίο εισόδου εστίασης (στην κάτω δεξιά γωνία του παραθύρου εγγράφου), να πληκτρολογήσετε μια τιμή εστίασης σε % και να πατήσετε Enter. Υπάρχει επίσης το εργαλείο εστίασης (στη γραμμή εργαλείων στα αριστερά) που σας επιτρέπει να εστιάσετε σε μια περιοχή σύροντας γύρω της. + + + + + + + Το Inkscape επίσης κρατά ιστορικό των σταθμών εστίασης που χρησιμοποιήσατε στη σύνοδο αυτής της εργασίας. Πατήστε το πλήκτρο ` για να επιστρέψετε στην προηγούμενη εστίαση, ή Shift+` για να προχωρήσετε. + + + Εργαλεία Inkscape + + + + + + + Η κάθετη γραμμή εργαλείων στα αριστερά εμφανίζει τα σχεδιαστικά και επεξεργαστικά εργαλεία του Inkscape. Στο πάνω μέρος του παραθύρου, κάτω από το μενού, υπάρχει η γραμμή εντολών με κουμπιά γενικών εντολών και η γραμμή ελέγχων εργαλείου με ελέγχους που είναι ειδικοί για κάθε εργαλείο. Η γραμμή κατάστασης στον πυθμένα του παραθύρου εμφανίζει χρήσιμες υποδείξεις και μηνύματα καθώς εργάζεσθε. + + + + + + + Πολλές λειτουργίες είναι διαθέσιμες μέσω συντομεύσεων πληκτρολογίου. Ανοίξτε Βοήθεια > Αναφορά πλήκτρων και ποντικιού για να δείτε την πλήρη αναφορά. + + + Δημιουργία και διαχείριση εγγράφων + + + + + + + Για να δημιουργήσετε ένα νέο άδειο έγγραφο, χρησιμοποιήστε File > Νέο ή πατήστε Ctrl+N. Για να ανοίξετε ένα υπάρχον έγγραφο SVG, χρησιμοποιήστε Αρχείο > Άνοιγμα (Ctrl+O). Για να αποθηκεύσετε, χρησιμοποιήστε Αρχείο > Αποθήκευση (Ctrl+S) ή Αποθήκευση ως (Shift+Ctrl+S) για να αποθηκεύσετε με νέο όνομα. (Το Inkscape ίσως ακόμα να είναι ασταθές, έτσι να θυμόσαστε να αποθηκεύετε συχνά!) + + + + + + + Το Inkscape χρησιμοποιεί τη μορφή SVG (Scalable Vector Graphics) για τα αρχεία του. SVG είναι ένα ανοικτό πρότυπο πλατιά υποστηριζόμενο από λογισμικό γραφικών. Τα αρχεία SVG βασίζονται σε XML και μπορούν να επεξεργαστούν με οποιοδήποτε επεξεργαστή κειμένου ή XML (πέρα από το Inkscape). Εκτός από SVG, το Inkscape μπορεί να εισάγει και να εξάγει πολλές άλλες μορφές (EPS, PNG). + + + + + + + Το Inkscape ανοίγει ένα ξεχωριστό παράθυρο εγγράφου για κάθε έγγραφο. Μπορείτε να περιηγηθείτε μεταξύ τους χρησιμοποιώντας το διαχειριστή παραθύρου σας (π.χ. με Alt+Tab) ή μπορείτε να χρησιμοποιήσετε τη συντόμευση του Inkscape, Ctrl+Tab, που κάνει κύκλο μεταξύ όλων των ανοικτών παραθύρων εγγράφου. (Δημιουργήστε ένα νέο έγγραφο τώρα και εναλλάξτε μεταξύ του και αυτού του εγγράφου για εξάσκηση.) Σημείωση: Το Inkscape αντιμετωπίζει αυτά τα παράθυρα ως καρτέλες σε περιηγητή ιστού, αυτό σημαίνει ότι η συντόμευση Ctrl+Tab δουλεύει μόνο με έγγραφα που τρέχουν την ίδια διεργασία. Αν ανοίξετε πολλαπλά αρχεία από ένα αρχείο περιηγητή ή εκκινήσετε περισσότερες από μία διεργασίες σε μια εικόνα στο Inkscape δεν θα δουλέψει. + + + Δημιουργία σχημάτων + + + + + + + Ώρα για μερικά όμορφα σχήματα! Κλικ στο εργαλείο ορθογωνίου στη γραμμή εργαλείων (ή πιέστε F4) και κλικ και σύρσιμο, είτε σε ένα νέο κενό έγγραφο ή ακριβώς εδώ: + + + + + + + + + + + + + + + + + + Όπως μπορείτε να δείτε, τα προεπιλεγμένα ορθογώνια γίνονται μπλε, με μια μαύρη πινελιά (περίγραμμα) και πλήρως αδιαφανή. Θα δούμε πώς αλλάζουμε αυτό παρακάτω. Με άλλα εργαλεία, μπορείτε επίσης να δημιουργήσετε ελλείψεις, αστέρια και σπείρες (ελικοειδή): + + + + + + + + + + + + + + + + + + + + + + + Αυτά τα εργαλεία είναι συλλογικά γνωστά ως εργαλεία σχήματος. Κάθε σχήμα που δημιουργείτε εμφανίζει μία ή περισσότερες λαβές σε σχήμα διαμαντιού. Δοκιμάστε να τις σύρετε για να δείτε την ανταπόκριση των σχημάτων. Το φατνίο ελέγχων για το εργαλείο σχήματος είναι ένας άλλος τρόπος για ρύθμιση του σχήματος. Αυτοί οι έλεγχοι επηρεάζουν τα τρέχοντα επιλεγμένα σχήματα (δηλαδή αυτά που εμφανίζουν τις λαβές) και ορίστε το προεπιλεγμένο που θα εφαρμοστεί στα νεοδημιουργούμενα σχήματα. + + + + + + + Για να αναιρέσετε την τελευταία σας πράξη, πατήστε Ctrl+Z. (Ή, εάν αλλάξετε γνώμη ξανά, μπορείτε να επανεκτελέσετε την ενέργεια της ακύρωσης με Shift+Ctrl+Z.) + + + Μετακίνηση, κλιμάκωση, περιστροφή + + + + + + + Το πιο συχνά χρησιμοποιούμενο εργαλείο του Inkscape είναι ο Επιλογέας. Κλικ στο πιο πάνω κουμπί (με το βέλος) στη γραμμή εργαλείων, ή πατήστε F1 ή διάστημα. Τώρα μπορείτε να επιλέξετε κάθε αντικείμενο στον καμβά. Πατήστε στο πιο κάτω ορθογώνιο. + + + + + + + + Θα δείτε οκτώ λαβές σε σχήμα βέλους να εμφανίζονται γύρω από το αντικείμενο. Τώρα μπορείτε: + + + + + + + + να μετακινήσετε το αντικείμενο σύροντας το. (Πατήστε Ctrl για να περιορίσετε την κίνηση οριζόντια ή κάθετα.) + + + + + + + + να κλιμακώσετε το αντικείμενο σύροντας κάθε λαβή. (Πατήστε Ctrl για να διατηρήσετε την αρχική αναλογία ύψους/πλάτους.) + + + + + + + Τώρα πατήστε στο ορθογώνιο ξανά. Οι λαβές αλλάζουν. Τώρα μπορείτε: + + + + + + + + να περιστρέψετε το αντικείμενο σύροντας τις γωνιακές λαβές. (Πατήστε Ctrl για να περιορίσετε την περιστροφή σε βήματα 15 μοιρών. Σύρτε το σημάδι του σταυρού για να τοποθετήσετε το κέντρο της περιστροφής.) + + + + + + + + να στρεβλώσετε το αντικείμενο σύροντας μη γωνιακές λαβές. (Πατήστε Ctrl για να περιορίσετε τη στρέβλωση σε βήματα 15 μοιρών.) + + + + + + + Ενώ είσαστε στον επιλογέα, μπορείτε επίσης να χρησιμοποιήσετε τα αριθμητικά πεδία εισόδου στη γραμμή ελέγχων (πάνω από τον καμβά) για να ορίσετε ακριβείς τιμές για συντεταγμένες (X και Y) και μεγέθη (πλάτος και ύψος) της επιλογής. + + + Μετασχηματισμός με πλήκτρα + + + + + + + Ένα από τα χαρακτηριστικά του Inkscape που το ξεχωρίζουν από τους άλλους επεξεργαστές διανυσμάτων είναι η έμφαση του στην προσβασιμότητα του πληκτρολογίου. Δεν υπάρχει πρακτικά καμία εντολή ή ενέργεια που είναι αδύνατο να γίνει από το πληκτρολόγιο και ο μετασχηματισμός αντικειμένων δεν είναι εξαίρεση. + + + + + + + Μπορείτε να χρησιμοποιήσετε το πληκτρολόγιο για να μετακινήσετε (πλήκτρα βελών), να κλιμακώσετε (πλήκτρα < και >) και να περιστρέψετε (πλήκτρα [ και ]) αντικείμενα. Οι προεπιλεγμένες μετακινήσεις και κλιμακώσεις είναι κατά 2 εικονοστοιχεία, με το Shift, μετακινείτε κατά το δεκαπλάσιο του. Ctrl+> και Ctrl+< αυξάνουν ή μειώνουν στο 200% ή 50% του αρχικού, αντίστοιχα. Οι προεπιλεγμένες περιστροφές είναι κατά 15 μοίρες. Με Ctrl περιστρέφετε κατά 90 μοίρες. + + + + + + + Όμως, ίσως το πιο χρήσιμο είναι μετασχηματισμοί μεγέθους εικονοστοιχείου, καλούμενες με τη χρήση Alt με τα πλήκτρα μετασχηματισμού. Π.χ., Alt+βέλη θα μετακινήσουν την επιλογή κατά 1 εικονοστοιχείο στην τρέχουσα εστίαση (δηλαδή κατά 1 εικονοστοιχείο οθόνης, που δεν πρέπει να συγχέεται με τη μονάδα px (εικονοστοιχείο) που είναι μια μονάδα μήκους SVG ανεξάρτητη από την εστίαση). Αυτό σημαίνει ότι εάν μεγεθύνετε, ένα Alt+βέλος θα καταλήξει σε μια μικρότερη απόλυτη κίνηση που θα φαίνεται ακόμα ως ώθηση ενός εικονοστοιχείου στην οθόνη σας. Είναι έτσι δυνατόν να τοποθετήσετε αντικείμενα με ελεύθερη ακρίβεια απλά με μεγέθυνση ή σμίκρυνση όπως χρειάζεται. + + + + + + + Παρόμοια, Alt+> και Alt+< κλιμακώνουν την επιλογή έτσι ώστε οι ορατές αλλαγές μεγέθους της κατά ένα εικονοστοιχείο οθόνης και Alt+[ και Alt+] να την περιστρέφουν έτσι ώστε το πιο απομακρυσμένο από το κέντρο σημείο να μετακινείται κατά ένα εικονοστοιχείο οθόνης. + + + + + + + Σημείωση: Οι χρήστες Linux μπορεί να μην πάρουν τα αναμενόμενα αποτελέσματα με Alt+βέλος και μερικούς άλλους συνδυασμούς πλήκτρων, εάν ο διαχειριστής παραθύρου συλλάβει αυτά τα συμβάντα πλήκτρων πριν φτάσουν στην εφαρμογή inkscape. Μιά λύση θα ήταν η αλλαγή της διαμόρφωσης του διαχειριστή παραθύρου ανάλογα. + + + Πολλαπλές επιλογές + + + + + + + Μπορείτε να επιλέξετε οποιοδήποτε αριθμό αντικειμένων ταυτόχρονα με Shift+κλικ. Ή, μπορείτε να σύρετε γύρω από τα αντικείμενα που χρειάζεσθε να επιλέξετε. Αυτό λέγεται επιλογή λάστιχο. (Ο επιλογέας δημιουργεί ένα λάστιχο όταν σύρετε από έναν κενό χώρο. Όμως, εάν πατήσετε Shift πριν την έναρξη του συρσίματος, το Inkscape θα δημιουργεί πάντοτε το λάστιχο.) Εξασκηθείτε επιλέγοντας και τα τρία παρακάτω σχήματα: + + + + + + + + + + Τώρα, χρησιμοποιήστε το λάστιχο (με σύρσιμο ή Shift+σύρσιμο) για να επιλέξετε τις δύο ελλείψεις αλλά όχι το ορθογώνιο: + + + + + + + + + + Κάθε ατομικό αντικείμενο μέσα σε μια επιλογή εμφανίζει μια υπόδειξη επιλογής — από προεπιλογή, ένα διακεκομμένο ορθογώνιο πλαίσιο. Αυτές οι υποδείξεις κάνουν πιο εύκολο να δει κανείς μονομιάς, τι επιλέχτηκε και τι όχι. Π.χ., εάν επιλέξετε και τις δύο ελλείψεις και το ορθογώνιο, χωρίς τις υποδείξεις θα ήταν δύσκολο να μαντέψετε εάν οι ελλείψεις είναι επιλεγμένες ή όχι. + + + + + + + Shift+κλικ σε ένα επιλεγμένο αντικείμενο το αποκλείει από την επιλογή. Επιλέξτε και τα τρία πιο πάνω αντικείμενα, έπειτα χρησιμοποιήστε Shift+κλικ για να αποκλείσετε και τις δύο ελλείψεις από την επιλογή αφήνοντας μόνο το επιλεγμένο ορθογώνιο. + + + + + + + Πατώντας Esc αποεπιλέγεται οποιοδήποτε επιλεγμένο αντικείμενο. Ctrl+A επιλέγει όλα τα αντικείμενα στην τρέχουσα στρώση (εάν δεν δημιουργήσατε στρώσεις, είναι το ίδιο όπως όλα τα αντικείμενα στο έγγραφο). + + + Ομαδοποίηση + + + + + + + Πολλά αντικείμενα μπορούν να συνδυαστούν σε μια ομάδα. Μια ομάδα συμπεριφέρεται ως ένα μόνο αντικείμενο, όταν το σύρετε ή το μετακινείτε. Πιο κάτω, τα τρία αντικείμενα στα αριστερά είναι ανεξάρτητα, τα ίδια τρία αντικείμενα στα δεξιά είναι ομαδοποιημένα. Δοκιμάστε να σύρετε την ομάδα. + + + + + + + + + + + + + + + Για να δημιουργήσετε μια ομάδα, επιλέγετε ένα ή περισσότερα αντικείμενα και πατάτε Ctrl+G. Για να αποομαδοποιήσετε μία ή περισσότερες ομάδες, επιλέξτε τις και πατήστε Ctrl+U. Οι ίδιες οι ομάδες μπορούν να ομαδοποιηθούν, όπως κάθε άλλο αντικείμενο. Τέτοιες αναδρομικές ομάδες μπορεί να πάνε σε ελεύθερο βάθος. Όμως, Ctrl+U αποομαδοποιεί μόνο την υψηλότερη στάθμη ομαδοποίησης μιας επιλογής. Θα χρειαστεί να πιέσετε το Ctrl+U επανειλημμένα, εάν θέλετε να αποομαδοποιήσετε πλήρως τις ομάδες των ομάδων. + + + + + + + Δεν χρειάζεται να αποομαδοποιήσετε κατ' ανάγκην, όμως, εάν θέλετε να επεξεργαστείτε ένα αντικείμενο μέσα σε μια ομάδα. Απλά Ctrl+κλικ αυτό το αντικείμενο και θα επιλεγεί και θα γίνει επεξεργάσιμο, ή Shift+Ctrl+κλικ για πολλά αντικείμενα (μέσα ή έξω από κάθε ομάδα) για πολλαπλή επιλογή ανεξάρτητα από την ομαδοποίηση. Προσπαθήστε να μετακινήσετε ή να μετασχηματίσετε τα ατομικά σχήματα στην ομάδα (πάνω δεξιά) χωρίς να τα αποομαδοποιήσετε, μετά αποεπιλέξτε και επιλέξτε την ομάδα κανονικά για να δείτε ότι παραμένει ακόμα ομαδοποιημένη. + + + Γέμισμα και Πινελιά + + + + + + + Πολλές λειτουργίες του Inkscape είναι διαθέσιμες μέσω διαλόγων. Προφανώς ο πιο απλός τρόπος να βάψετε ένα αντικείμενο με κάποιο χρώμα είναι να ανοίξετε το διάλογο χρωματολόγια από το μενού προβολή (ή πατήστε Shift+Ctrl+W), επιλέξτε ένα αντικείμενο και πατήστε ένα χρώμα για να το βάψετε (αλλάξτε το χρώμα γεμίσματος του). + + + + + + + Πιο ισχυρός είναι ο διάλογος γεμίσματος και πινελιάς από το μενού αντικείμενο (ή πατήστε Shift+Ctrl+F). Επιλέξτε το πιο κάτω σχήμα και ανοίξτε το διάλογο γεμίσματος και πινελιάς. + + + + + + + + Θα δείτε ότι ο διάλογος έχει τρεις καρτέλες: γέμισμα, πινελιά και μορφοποίηση πινελιάς. Η καρτέλα γέμισμα σας επιτρέπει να επεξεργαστείτε το γέμισμα (εσωτερικό) των επιλεγμένων αντικειμένων. Χρησιμοποιώντας τα κουμπιά πιο κάτω από την καρτέλα, μπορείτε να επιλέξετε τύπους γεμίσματος, συμπεριλαμβανόμενων χωρίς χρώμα (το κουμπί με το Χ), επίπεδο χρώμα, καθώς και γραμμικές ή ακτινικές διαβαθμίσεις. Για το πιο πάνω σχήμα, το κουμπί επίπεδου χρώματος θα ενεργοποιηθεί. + + + + + + + Πιο κάτω βλέπετε μια επιλογή των επιλογέων χρώματος, καθένας στη δική του καρτέλα: RGB, CMYK, HSL και τροχός. Ίσως ο πιο βολικός είναι ο επιλογέας τροχού, όπου μπορείτε να περιστρέψετε το τρίγωνο για να επιλέξετε χρώμα στον τροχό και έπειτα επιλογή απόχρωσης του χρώματος μες το τρίγωνο. Όλοι οι επιλογείς χρώματος περιέχουν έναν ολισθητή για ορισμό του άλφα (αδιαφάνειας) των επιλεγμένων αντικειμένων. + + + + + + + Όποτε επιλέγετε ένα αντικείμενο, ο επιλογέας χρώματος ενημερώνεται για να εμφανίσει το τρέχον γέμισμα του και την τρέχουσα πινελιά του (για πολλαπλές επιλογές αντικειμένων, ο διάλογος εμφανίζει το μέσο όρο του χρώματος). Παίξτε με αυτά τα δείγματα ή δημιουργήστε τα δικά σας: + + + + + + + + + + + + + + Χρησιμοποιώντας την καρτέλα πινελιάς, μπορείτε να αφαιρέσετε την πινελιά (περίγραμμα) του αντικειμένου, ή να αποδώσετε οποιοδήποτε χρώμα ή διαφάνεια σε αυτό: + + + + + + + + + + + + + + + Η τελευταία καρτέλα, μορφοποίηση πινελιάς, σας επιτρέπει να ορίσετε το πλάτος και άλλες παραμέτρους της πινελιάς: + + + + + + + + + + + + + + Τελικά, αντί για επίπεδο χρώμα, μπορείτε να χρησιμοποιήσετε διαβαθμίσεις για γεμίσματα και/ή πινελιές: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Όταν αλλάζετε από επίπεδο χρώμα σε διαβάθμιση, η νεοδημιουργούμενη διαβάθμιση χρησιμοποιεί το προηγούμενο επίπεδο χρώμα, πηγαίνοντας από αδιαφανές σε διαφανές. Εναλλάξτε στο εργαλείο διαβάθμισης (Ctrl+F1) για να σύρετε τις λαβές διαβάθμισης — τους ελέγχους συνδεμένους με γραμμές που ορίζουν την κατεύθυνση και το μήκος της διαβάθμισης. Όταν οποιαδήποτε από τις λαβές διαβάθμισης επιλέγεται (τονισμένο μπλε), ο διάλογος γεμίσματος και πινελιάς ορίζει το χρώμα αυτής της λαβής αντί για το χρώμα του συνολικού επιλεγμένου αντικειμένου. + + + + + + + Ένας άλλος ακόμα βολικός τρόπος για αλλαγή χρώματος ενός αντικειμένου είναι χρησιμοποιώντας το εργαλείο σταγονόμετρου (F7). Απλά κλικ οπουδήποτε στη περιοχή σχεδίασης με αυτό το εργαλείο και το επιλεγμένο χρώμα θα αποδοθεί στο γέμισμα του επιλεγμένου αντικειμένου (Shift+κλικ θα αποδώσει το χρώμα πινελιάς). + + + Διπλασιασμός, ευθυγράμμιση, κατανομή + + + + + + + Μια από τις πιο συνηθισμένες λειτουργίες είναι διπλασιασμός ενός αντικειμένου (Ctrl+D). Το αντίγραφο τοποθετείται ακριβώς πάνω από το αρχικό και επιλέγεται, έτσι μπορείτε να το σύρετε μακριά με το ποντίκι ή με τα πλήκτρα βελών. Για εξάσκηση, δοκιμάστε το γέμισμα της γραμμής με αντίγραφα αυτού του μαύρου τετραγώνου: + + + + + + + + Υπάρχουν πιθανότητες, τα αντίγραφά σας του τετραγώνου να είναι τοποθετημένα περισσότερο ή λιγότερο τυχαία. Εδώ είναι που ο διάλογος ευθυγράμμιση (Ctrl+Shift+A) είναι χρήσιμος. Επιλέξτε όλα τα τετράγωνα (Shift+κλικ ή σύρτε το λάστιχο), ανοίξτε το διάλογο και πατήστε το κουμπί "κεντράρισμα στον οριζόντιο άξονα", έπειτα το κουμπί "εξίσωση οριζόντιων κενών μεταξύ αντικειμένων" (διαβάστε τις συμβουλές του κουμπιού). Τα αντικείμενα είναι τώρα καθαρά ευθυγραμμισμένα και κατανεμημένα σε ίσες αποστάσεις. Να μερικά άλλα παραδείγματα ευθυγράμμισης και κατανομής: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Διάταξη-Ζ + + + + + + + Ό όρος διάταξη-z αναφέρεται σε μια διάταξη στοίβας αντικειμένων σε ένα σχέδιο, δηλαδή σε ποιο αντικείμενο είναι στην κορυφή και επισκιάζει τα άλλα. Οι δύο εντολές στο μενού αντικειμένου, ανύψωση στην κορυφή (το πλήκτρο Home) και βύθιση στον πυθμένα (το πλήκτρο End), θα μετακινήσουν τα επιλεγμένα αντικείμενά σας στην πιο υψηλή ή στην πιο χαμηλή από τις διατάξεις-z της τρέχουσας στρώσης. Δύο περισσότερες εντολές, ανύψωση (PgUp) και βύθιση (PgDn), θα ανυψώσουν ή θα βυθίσουν την επιλογή μόνο ένα βήμα, δηλαδή θα μετακινήσουν το προηγούμενο μη επιλεγμένο αντικείμενο στη διάταξη-z (μόνο αντικείμενα που επικαλύπτουν την επιλογή μετράνε, εάν τίποτα δεν επικαλύπτει την επιλογή, η ανύψωση και η βύθιση την μετακινούν όλο το δρόμο στην κορυφή ή στον πυθμένα αντίστοιχα). + + + + + + + Εξασκηθείτε χρησιμοποιώντας αυτές τις εντολές αντιστρέφοντας τη διάταξη-z των πιο κάτω αντικειμένων, έτσι ώστε η πιο αριστερή έλλειψη να είναι στην κορυφή και η πιο δεξιά έλλειψη να είναι στον πυθμένα: + + + + + + + + + + + + + Μια πολύ χρήσιμη συντόμευση επιλογής είναι το πλήκτρο Tab. Εάν τίποτα δεν έχει επιλεγεί, επιλέγει το πιο χαμηλό αντικείμενο. Διαφορετικά επιλέγει το αντικείμενο πάνω από τα επιλεγμένα αντικείμενα στη διάταξη-z. Shift+Tab δουλεύουν αντίστροφα, ξεκινώντας από το πιο ψηλό αντικείμενο και προχωρώντας προς τα κάτω. Αφού τα αντικείμενα που δημιουργείτε προστίθενται στην κορυφή της στοίβας, πατώντας Shift+Tab χωρίς επιλογή θα επιλέξει βολικά το αντικείμενο που δημιουργήσατε τελευταίο. Εξασκηθείτε με τα πλήκτρα Tab και Shift+Tab στη στοίβα των πιο πάνω ελλείψεων. + + + Επιλογή του από κάτω και σύρσιμο του επιλεγμένου + + + + + + + Τι να κάνετε εάν το αντικείμενο που χρειάζεσθε είναι κρυμμένο πίσω από ένα άλλο αντικείμενο; Ίσως βλέπετε ακόμα το κάτω αντικείμενο εάν το κορυφαίο είναι (μερικώς) διαφανές, αλλά πατώντας το θα επιλέξει το πάνω αντικείμενο, όχι αυτό που χρειάζεσθε. + + + + + + + Για αυτό είναι το Alt+κλικ. Πρώτα Alt+κλικ επιλέγει το κορυφαίο αντικείμενο όπως ένα κανονικό κλικ. Όμως, το επόμενο Alt+κλικ στο ίδιο σημείο θα επιλέξει το αντικείμενο κάτω από το κορυφαίο. Το επόμενο πάτημα το αντικείμενο ακόμα πιο χαμηλά, κλ. Έτσι πολλά Alt+click στη σειρά θα κάνουν κύκλο, κορυφή προς πυθμένα, μέσα από τη συνολική στοίβα των αντικειμένων της διάταξης-z στο σημείο κλικ. Όταν φτάνετε στο κατώτερο αντικείμενο, το επόμενο Alt+κλικ θα επιλέξει ξανά το κορυφαίο αντικείμενο. + + + + + + + [Εάν είσθε στο Linux, ίσως βρείτε ότι Alt+κλικ δεν λειτουργεί κατάλληλα. Αντίθετα, μπορεί να μετακινεί το συνολικό παράθυρο Inkscape. Αυτό συμβαίνει επειδή ο διαχειριστής παραθύρου έχει κρατήσει το +κλικ για διαφορετική ενέργεια. Ο τρόπος να το διορθώσετε είναι να βρείτε τη διαμόρφωση συμπεριφοράς του παραθύρου για τον διαχειριστή παραθύρου σας και είτε να το απενεργοποιήσετε, ή να το αντιστοιχίσετε στο πλήκτρο Meta (πλήκτρο aka Windows - συνήθως δίπλα στο Alt), έτσι ώστε άλλες εφαρμογές να μπορούν να χρησιμοποιήσουν το πλήκτρο Alt ελεύθερα.] + + + + + + + Αυτό είναι ωραίο, αλλά αφού επιλέξετε το αντικείμενο κάτω από την επιφάνεια, τι μπορείτε να κάνετε με αυτό; Μπορείτε να χρησιμοποιήσετε πλήκτρα για να το μετασχηματίσετε και μπορείτε να σύρετε τις λαβές επιλογής. Όμως, σύροντας το αντικείμενο το ίδιο θα επαναφέρει την επιλογή στο κορυφαίο αντικείμενο ξανά (έτσι σχεδιάστηκε να δουλεύει το κλικ και σύρσιμο — επιλέγει το κορυφαίο αντικείμενο κάτω από το δρομέα πρώτο, έπειτα σύρει την επιλογή). Για να πείτε στο Inkscape να σύρετε την τρέχουσα επιλογή χωρίς να επιλέξει τίποτα άλλο, χρησιμοποιήστε Alt+σύρσιμο. Αυτό θα μετακινήσει την τρέχουσα επιλογή άσχετα με το πού σύρετε το ποντίκι σας. + + + + + + + Εξασκηθείτε Alt+κλικ και Alt+σύρσιμο στα δύο καφέ σχήματα κάτω από το πράσινο διαφανές ορθογώνιο: + + + + + + Συμπέρασμα + + + + + + + Αυτό κλείνει το βασικό μάθημα. Υπάρχουν πολύ περισσότερα από αυτό στο Inkscape, αλλά με τις τεχνικές που περιγράφτηκαν εδώ, θα μπορείτε ήδη να δημιουργήσετε απλά αλλά χρήσιμα γραφικά. Για πιο περίπλοκο υλικό, συνεχίστε με το προχωρημένο και τα άλλα μαθήματα στο Βοήθεια > Μαθήματα. + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Use Ctrl+up arrow to scroll + + + + -- cgit v1.2.3 From dd5da66df059871c546f4d09b9d2eb92e71b74b7 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sun, 10 Jul 2011 21:40:56 +0200 Subject: Selector's toolbar: changing the dimensions of the visual bounding box of selection of multiple objects having different stroke widths has been fixed (bug #212768, #190557, ...) Fixed bugs: - https://launchpad.net/bugs/212768 - https://launchpad.net/bugs/190557 (bzr r10437.1.5) --- src/seltrans.cpp | 4 +- src/snap-preferences.cpp | 2 +- src/snap-preferences.h | 2 +- src/sp-item-transform.cpp | 273 ++++++++++++++++++++++++++++++++++------- src/sp-item-transform.h | 3 +- src/widgets/select-toolbar.cpp | 42 ++++--- 6 files changed, 260 insertions(+), 66 deletions(-) diff --git a/src/seltrans.cpp b/src/seltrans.cpp index f95a204a9..f6a702ed9 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -1566,7 +1566,7 @@ Geom::Point Inkscape::SelTrans::_getGeomHandlePos(Geom::Point const &visual_hand // Calculate the absolute affine while taking into account the scaling of the stroke width Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool transform_stroke = prefs->getBool("/options/transform/stroke", true); - Geom::Affine abs_affine = get_scale_transform_with_stroke (*_bbox, _strokewidth, transform_stroke, + Geom::Affine abs_affine = get_scale_transform_with_uniform_stroke (*_bbox, _strokewidth, transform_stroke, new_bbox.min()[Geom::X], new_bbox.min()[Geom::Y], new_bbox.max()[Geom::X], new_bbox.max()[Geom::Y]); // Calculate the scaled geometrical bbox @@ -1613,7 +1613,7 @@ Geom::Point Inkscape::SelTrans::_calcAbsAffineDefault(Geom::Scale const default_ strokewidth = _strokewidth; } - _absolute_affine = get_scale_transform_with_stroke (*_approximate_bbox, strokewidth, transform_stroke, + _absolute_affine = get_scale_transform_with_uniform_stroke (*_approximate_bbox, strokewidth, transform_stroke, new_bbox_min[Geom::X], new_bbox_min[Geom::Y], new_bbox_max[Geom::X], new_bbox_max[Geom::Y]); // return the new handle position diff --git a/src/snap-preferences.cpp b/src/snap-preferences.cpp index 4859b111e..b98726a86 100644 --- a/src/snap-preferences.cpp +++ b/src/snap-preferences.cpp @@ -5,7 +5,7 @@ * Authors: * Diederik van Lierop * - * Copyright (C) 2008 Authors + * Copyright (C) 2008 - 2011 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ diff --git a/src/snap-preferences.h b/src/snap-preferences.h index 8e8ebc9cf..35d05c40e 100644 --- a/src/snap-preferences.h +++ b/src/snap-preferences.h @@ -8,7 +8,7 @@ * Authors: * Diederik van Lierop * - * Copyright (C) 2008 - 2010 Authors + * Copyright (C) 2008 - 2011 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index ae55a5c50..45d965e44 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -7,8 +7,9 @@ * bulia byak * Johan Engelen * Abhishek Sharma + * Diederik van Lierop * - * Copyright (C) 1999-2008 authors + * Copyright (C) 1999-2011 authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -67,46 +68,76 @@ sp_item_skew_rel (SPItem *item, double skewX, double skewY) void sp_item_move_rel(SPItem *item, Geom::Translate const &tr) { - item->set_i2d_affine(item->i2d_affine() * tr); + item->set_i2d_affine(item->i2d_affine() * tr); - item->doWriteTransform(item->getRepr(), item->transform); + item->doWriteTransform(item->getRepr(), item->transform); } -/* -** Returns the matrix you need to apply to an object with given visual bbox and strokewidth to -scale/move it to the new visual bbox x0/y0/x1/y1. Takes into account the "scale stroke" -preference value passed to it. Has to solve a quadratic equation to make sure -the goal is met exactly and the stroke scaling is obeyed. +/** + * \brief Calculate the affine transformation required to transform one visual bounding box into another, accounting for a uniform strokewidth + * + * PS: This function will only return accurate results for the visual bounding box of a selection of one of more objects, all having + * the same strokewidth. If the stroke width varies from object to object in this selection, then the function + * get_scale_transform_with_unequal_stroke() should be called instead + * + * When scaling or stretching an object using the selector, e.g. by dragging the handles or by entering a value, we will + * need to calculate the affine transformation for the old dimensions to the new dimensions. When using a geometric bounding + * box this is very straightforward, but when using a visual bounding box this become more tricky as we need to account for + * the strokewidth, which is either constant or scales width the area of the object. This function takes care of the calculation + * of the affine transformation: + * \param bbox_visual Current visual bounding box + * \param strokewidth Strokewidth + * \param transform_stroke If true then the stroke will be scaled proportional to the square root of the area of the geometric bounding box + * \param x0 Coordinate of the target visual bounding box + * \param y0 Coordinate of the target visual bounding box + * \param x1 Coordinate of the target visual bounding box + * \param y1 Coordinate of the target visual bounding box + * PS: we have to pass each coordinate individually, to find out if we are mirroring the object; Using a Geom::Rect() instead is + not possible here because it will only allow for a positive width and height, and therefore cannot mirror + * \return */ Geom::Affine -get_scale_transform_with_stroke (Geom::Rect const &bbox_param, gdouble strokewidth, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1) +get_scale_transform_with_uniform_stroke (Geom::Rect const &bbox_visual, gdouble strokewidth, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1) { - Geom::Rect bbox (bbox_param); - - Geom::Affine p2o = Geom::Translate (-bbox.min()); + Geom::Affine p2o = Geom::Translate (-bbox_visual.min()); Geom::Affine o2n = Geom::Translate (x0, y0); - Geom::Affine scale = Geom::Scale (1, 1); // scale component - Geom::Affine unbudge = Geom::Translate (0, 0); // move component to compensate for the drift caused by stroke width change + Geom::Affine scale = Geom::Scale (1, 1); + Geom::Affine unbudge = Geom::Translate (0, 0); // moves the object(s) to compensate for the drift caused by stroke width change + + // 1) We start with a visual bounding box (w0, h0) which we want to transfer into another visual bounding box (w1, h1) + // 2) The stroke is r0, equal for all edges + // 3) Given this visual bounding box we can calculate the geometric bounding box by subtracting half the stroke from each side; + // -> The width and height of the geometric bounding box will therefore be (w0 - 2*0.5*r0) and (h0 - 2*0.5*r0) - gdouble w0 = bbox[Geom::X].extent(); // will return a value >= 0, as required further down the road - gdouble h0 = bbox[Geom::Y].extent(); + gdouble w0 = bbox_visual.width(); // will return a value >= 0, as required further down the road + gdouble h0 = bbox_visual.height(); + gdouble r0 = fabs(strokewidth); + + // We also know the width and height of the new visual bounding box gdouble w1 = x1 - x0; // can have any sign gdouble h1 = y1 - y0; - gdouble r0 = strokewidth; + // The new visual bounding box will have a stroke r1 + + // We will now try to calculate the affine transformation required to transform the first visual bounding box into + // the second one, while accounting for strokewidth - if (bbox.hasZeroArea()) { - Geom::Affine move = Geom::Translate(x0 - bbox.min()[Geom::X], y0 - bbox.min()[Geom::Y]); - return (move); // cannot scale from empty boxes at all, so only translate + if (bbox_visual.hasZeroArea()) { // Obviously we cannot scale from empty visual bounding boxes at all, so we will only translate in such a case + Geom::Affine move = Geom::Translate(x0 - bbox_visual.min()[Geom::X], y0 - bbox_visual.min()[Geom::Y]); + return (move); } - Geom::Affine direct = Geom::Scale(w1 / w0, h1 / h0); + Geom::Affine direct = Geom::Scale(w1 / w0, h1 / h0); // Scaling of the visual bounding box + // Although the area of the visual bounding box is not zero, we can still have a geometric + // bounding box with one or both sides having zero length. We can't handle this and will therefore + // simply return the scaling of the visual bounding box, without accounting for any stroke scaling if (fabs(w0 - r0) < 1e-6 || fabs(h0 - r0) < 1e-6 || (!transform_stroke && (fabs(w1 - r0) < 1e-6 || fabs(h1 - r0) < 1e-6))) { - return (p2o * direct * o2n); // can't solve the equation: one of the dimensions is equal to stroke width, so return the straightforward scaler + return (p2o * direct * o2n); } + // Here starts the calculation you've been waiting for; first do some preparation int flip_x = (w1 > 0) ? 1 : -1; int flip_y = (h1 > 0) ? 1 : -1; @@ -115,43 +146,201 @@ get_scale_transform_with_stroke (Geom::Rect const &bbox_param, gdouble strokewid w1 = fabs(w1); h1 = fabs(h1); r0 = fabs(r0); - // w0 and h0 will always be positive due to the definition extent() + // w0 and h0 will always be positive due to the definition of the width() and height() methods. - gdouble ratio_x = (w1 - r0) / (w0 - r0); + gdouble ratio_x = (w1 - r0) / (w0 - r0); // Only valid when the stroke is kept constant, in which case r1 = r0 gdouble ratio_y = (h1 - r0) / (h0 - r0); - + + // Calculating the scaling of the geometric bounding box if the stroke is kept constant Geom::Affine direct_constant_r = Geom::Scale(flip_x * ratio_x, flip_y * ratio_y); - if (transform_stroke && r0 != 0 && r0 != Geom::infinity()) { // there's stroke, and we need to scale it - // These coefficients are obtained from the assumption that scaling applies to the - // non-stroked "shape proper" and that stroke scale is scaled by the expansion of that - // matrix. We're trying to solve this equation: - // r1 = r0 * sqrt (((w1-r0)/(w0-r0))*((h1-r0)/(h0-r0))) - // The operant of the sqrt() must be positive, which is ensured by the fabs() a few lines above + // If the stroke is not kept constant however, the scaling of the geometric bbox is more difficult to find + if (transform_stroke && r0 != 0 && r0 != Geom::infinity()) { // Check if there's stroke, and we need to scale it + /* Initial area of the geometric bounding box: A0 = (w0-r0)*(h0-r0) + * Desired area of the geometric bounding box: A1 = (w1-r1)*(h1-r1) + * This is how the stroke should scale: r1^2 / A1 = r0^2 / A0 + * So therefore we will need to solve this equation: + * + * r1^2 * (w0-r0) * (h1-r1) = r0^2 * (w1-r1) * (h0-r0) + * + * This is a quadratic equation in r1, of which the roots can be found using the ABC formula + * */ gdouble A = -w0*h0 + r0*(w0 + h0); gdouble B = -(w1 + h1) * r0*r0; gdouble C = w1 * h1 * r0*r0; if (B*B - 4*A*C > 0) { + // Of the two roots, I verified experimentally that this is the one we need gdouble r1 = fabs((-B - sqrt(B*B - 4*A*C))/(2*A)); - //gdouble r2 = (-B + sqrt (B*B - 4*A*C))/(2*A); - //std::cout << "r0" << r0 << " r1" << r1 << " r2" << r2 << "\n"; - // - // If w1 < 0 then the scale will be wrong if we just do - // gdouble scale_x = (w1 - r1)/(w0 - r0); - // Here we also need the absolute values of w0, w1, h0, h1, and r1 + // If w1 < 0 then the scale will be wrong if we just assume that scale_x = (w1 - r1)/(w0 - r0); + // Therefore we here need the absolute values of w0, w1, h0, h1, and r0, as taken care of earlier gdouble scale_x = (w1 - r1)/(w0 - r0); gdouble scale_y = (h1 - r1)/(h0 - r0); + // Now we account for mirroring by flipping if needed scale *= Geom::Scale(flip_x * scale_x, flip_y * scale_y); + // Make sure that the lower-left corner of the visual bounding box stays where it is, even though the stroke width has changed unbudge *= Geom::Translate (-flip_x * 0.5 * (r0 * scale_x - r1), -flip_y * 0.5 * (r0 * scale_y - r1)); - } else { + } else { // Can't find the roots of the quadratic equation. Likely the input parameters are invalid? scale *= direct; } - } else { - if (r0 == 0 || r0 == Geom::infinity()) { // no stroke to scale - scale *= direct; - } else {// nonscaling strokewidth + } else { // The stroke should not be scaled, or is zero + if (!transform_stroke) { // Nonscaling strokewidth scale *= direct_constant_r; unbudge *= Geom::Translate (flip_x * 0.5 * r0 * (1 - ratio_x), flip_y * 0.5 * r0 * (1 - ratio_y)); + } else { // Strokewidth is zero or infinite + scale *= direct; + } + } + + return (p2o * scale * unbudge * o2n); +} + +/** + * \brief Calculate the affine transformation required to transform one visual bounding box into another, accounting for a VARIABLE strokewidth + * + * Note: Please try to understand get_scale_transform_with_uniform_stroke() first, and read all it's comments carefully. This function + * (get_scale_transform_with_unequal_stroke) is a bit different because it will allow for a strokewidth that's different for each + * side of the visual bounding box. Such a situation will arise when transforming the visual bounding box of a selection of objects, + * each having a different stroke width. In fact this function is a generalized version of get_scale_transform_with_uniform_stroke(), but + * will not (yet) replace it because it has not been tested as carefully, and because the old function is can serve as an introduction to + * understand the new one. + * + * When scaling or stretching an object using the selector, e.g. by dragging the handles or by entering a value, we will + * need to calculate the affine transformation for the old dimensions to the new dimensions. When using a geometric bounding + * box this is very straightforward, but when using a visual bounding box this become more tricky as we need to account for + * the strokewidth, which is either constant or scales width the area of the object. This function takes care of the calculation + * of the affine transformation: + * + * \param bbox_visual Current visual bounding box + * \param bbox_geometric Current geometric bounding box (allows for calculating the strokewidth of each edge) + * \param transform_stroke If true then the stroke will be scaled proportional to the square root of the area of the geometric bounding box + * \param x0 Coordinate of the target visual bounding box + * \param y0 Coordinate of the target visual bounding box + * \param x1 Coordinate of the target visual bounding box + * \param y1 Coordinate of the target visual bounding box + PS: we have to pass each coordinate individually, to find out if we are mirroring the object; Using a Geom::Rect() instead is + not possible here because it will only allow for a positive width and height, and therefore cannot mirror + * \return +*/ + +Geom::Affine +get_scale_transform_with_unequal_stroke (Geom::Rect const &bbox_visual, Geom::Rect const &bbox_geom, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1) +{ + Geom::Affine p2o = Geom::Translate (-bbox_visual.min()); + Geom::Affine o2n = Geom::Translate (x0, y0); + + Geom::Affine scale = Geom::Scale (1, 1); + Geom::Affine unbudge = Geom::Translate (0, 0); // moves the object(s) to compensate for the drift caused by stroke width change + + // 1) We start with a visual bounding box (w0, h0) which we want to transfer into another visual bounding box (w1, h1) + // 2) We will also know the geometric bounding box, which can be used to calculate the strokewidth. The strokewidth will however + // be different for each of the four sides (left/right/top/bottom: r0l, r0r, r0t, r0b) + + gdouble w0 = bbox_visual.width(); // will return a value >= 0, as required further down the road + gdouble h0 = bbox_visual.height(); + + // We also know the width and height of the new visual bounding box + gdouble w1 = x1 - x0; // can have any sign + gdouble h1 = y1 - y0; + // The new visual bounding box will have strokes r1l, r1r, r1t, and r1b + + // We will now try to calculate the affine transformation required to transform the first visual bounding box into + // the second one, while accounting for strokewidth + gdouble r0w = w0 - bbox_geom.width(); // r0w is the average strokewidth of the left and right edges, i.e. 0.5*(r0l + r0r) + gdouble r0h = h0 - bbox_geom.height(); // r0h is the average strokewidth of the top and bottom edges, i.e. 0.5*(r0t + r0b) + + // Check whether the stroke is not negative; should not be possible, but just in case: + g_assert(r0w >= 0); + g_assert(r0h >= 0); + + if (bbox_visual.hasZeroArea()) { // Obviously we cannot scale from empty visual bounding boxes at all, so we will only translate in such a case + Geom::Affine move = Geom::Translate(x0 - bbox_visual.min()[Geom::X], y0 - bbox_visual.min()[Geom::Y]); + return (move); + } + + Geom::Affine direct = Geom::Scale(w1 / w0, h1 / h0); + + // Although the area of the visual bounding box is not zero, we can still have a geometric + // bounding box with one or both sides having zero length. We can't handle this and will therefore + // simply return the scaling of the visual bounding box, without accounting for any stroke scaling + if (fabs(w0 - r0w) < 1e-6 || fabs(h0 - r0h) < 1e-6 || (!transform_stroke && (fabs(w1 - r0w) < 1e-6 || fabs(h1 - r0h) < 1e-6))) { + return (p2o * direct * o2n); + } + + // Here starts the calculation you've been waiting for; first do some preparation + int flip_x = (w1 > 0) ? 1 : -1; + int flip_y = (h1 > 0) ? 1 : -1; + + // w1 and h1 will be negative when mirroring, but if so then e.g. w1-r0 won't make sense + // Therefore we will use the absolute values from this point on + w1 = fabs(w1); + h1 = fabs(h1); + // w0 and h0 will always be positive due to the definition of the width() and height() methods. + + gdouble ratio_x = (w1 - r0w) / (w0 - r0w); // Only valid when the stroke is kept constant, in which case r1 = r0 + gdouble ratio_y = (h1 - r0h) / (h0 - r0h); + + // Calculating the scaling of the geometric bounding box if the stroke is kept constant + Geom::Affine direct_constant_r = Geom::Scale(flip_x * ratio_x, flip_y * ratio_y); + + // The calculation of the new strokewidth will only use the average stroke for each of the dimensions; To find the new stroke for each + // of the edges individually though, we will use the boundary condition that the ratio of the left/right strokewidth will not change due to the + // scaling. The same holds for the ratio of the top/bottom strokewidth. + gdouble stroke_ratio_w = fabs(r0w) < 1e-6 ? 1 : (bbox_geom[Geom::X].min() - bbox_visual[Geom::X].min())/r0w; + gdouble stroke_ratio_h = fabs(r0h) < 1e-6 ? 1 : (bbox_geom[Geom::Y].min() - bbox_visual[Geom::Y].min())/r0h; + + // If the stroke is not kept constant however, the scaling of the geometric bbox is more difficult to find + if (transform_stroke && r0w != 0 && r0w != Geom::infinity() && r0h != 0 && r0h != Geom::infinity()) { // Check if there's stroke, and we need to scale it + /* Initial area of the geometric bounding box: A0 = (w0-r0w)*(h0-r0h) + * Desired area of the geometric bounding box: A1 = (w1-r1w)*(h1-r1h) + * This is how the stroke should scale: r1w^2 = A1/A0 * r0w^2, AND + * r1h^2 = A1/A0 * r0h^2 + * Now we have to solve this set of two equations and find r1w and r1h; this too complicated to do by hand, + * so I used wxMaxima for that (http://wxmaxima.sourceforge.net/). These lines can be copied into Maxima + * + * A1: (w1-r1w)*(h1-r1h); + * s: A1/A0; + * expr1a: r1w^2 = s*r0w^2; + * expr1b: r1h^2 = s*r0h^2; + * sol: solve([expr1a, expr1b], [r1h, r1w]); + * sol[1][1]; sol[2][1]; sol[3][1]; sol[4][1]; + * sol[1][2]; sol[2][2]; sol[3][2]; sol[4][2]; + * + * PS1: The last two lines are only needed for readability of the output, and can be omitted if desired + * PS2: A0 is known beforehand and assumed to be constant, instead of using A0 = (w0-r0w)*(h0-r0h). This reduces the + * length of the results significantly + * PS3: You'll get 8 solutions, 4 for each of the strokewidths r1w and r1h. Some experiments quickly showed which of the solutions + * lead to meaningful strokewidths + * */ + gdouble r0h2 = r0h*r0h; + gdouble r0h3 = r0h2*r0h; + gdouble r0w2 = r0w*r0w; + gdouble w12 = w1*w1; + gdouble h12 = h1*h1; + gdouble A0 = bbox_geom.area(); + gdouble A02 = A0*A0; + + gdouble operant = 4*h1*w1*A0+r0h2*w12-2*h1*r0h*r0w*w1+h12*r0w2; + if (operant >= 0) { + // Of the eight roots, I verified experimentally that these are the two we need + gdouble r1h= fabs((r0h*sqrt(operant)-r0h2*w1-h1*r0h*r0w)/(2*A0-2*r0h*r0w)); + gdouble r1w= fabs(-((h1*r0w*A0+r0h2*r0w*w1)*sqrt(operant)+(-3*h1*r0h*r0w*w1-h12*r0w2)*A0-r0h3*r0w*w12+h1*r0h2*r0w2*w1)/((r0h*A0-r0h2*r0w)*sqrt(operant)-2*h1*A02+(3*h1*r0h*r0w-r0h2*w1)*A0+r0h3*r0w*w1-h1*r0h2*r0w2)); + // If w1 < 0 then the scale will be wrong if we just assume that scale_x = (w1 - r1)/(w0 - r0); + // Therefore we here need the absolute values of w0, w1, h0, h1, and r0, as taken care of earlier + gdouble scale_x = (w1 - r1w)/(w0 - r0w); + gdouble scale_y = (h1 - r1h)/(h0 - r0h); + // Now we account for mirroring by flipping if needed + scale *= Geom::Scale(flip_x * scale_x, flip_y * scale_y); + // Make sure that the lower-left corner of the visual bounding box stays where it is, even though the stroke width has changed + unbudge *= Geom::Translate (-flip_x * stroke_ratio_w * (r0w * scale_x - r1w), -flip_y * stroke_ratio_h * (r0h * scale_y - r1h)); + } else { // Can't find the roots of the quadratic equation. Likely the input parameters are invalid? + scale *= direct; + } + } else { // The stroke should not be scaled, or is zero (or infinite) + if (!transform_stroke) { + scale *= direct_constant_r; + unbudge *= Geom::Translate (flip_x * stroke_ratio_w * r0w * (1 - ratio_x), flip_y * stroke_ratio_h * r0h * (1 - ratio_y)); + } else { // can't calculate, because apparently strokewidth is zero or infinite + scale *= direct; } } diff --git a/src/sp-item-transform.h b/src/sp-item-transform.h index 552b23e2f..47e0ec0ec 100644 --- a/src/sp-item-transform.h +++ b/src/sp-item-transform.h @@ -9,7 +9,8 @@ void sp_item_scale_rel (SPItem *item, Geom::Scale const &scale); void sp_item_skew_rel (SPItem *item, double skewX, double skewY); void sp_item_move_rel(SPItem *item, Geom::Translate const &tr); -Geom::Affine get_scale_transform_with_stroke (Geom::Rect const &bbox, gdouble strokewidth, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1); +Geom::Affine get_scale_transform_with_uniform_stroke (Geom::Rect const &bbox_visual, gdouble strokewidth, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1); +Geom::Affine get_scale_transform_with_unequal_stroke (Geom::Rect const &bbox_visual, Geom::Rect const &bbox_geom, bool transform_stroke, gdouble x0, gdouble y0, gdouble x1, gdouble y1); Geom::Rect get_visual_bbox (Geom::OptRect const &initial_geom_bbox, Geom::Affine const &abs_affine, gdouble const initial_strokewidth, bool const transform_stroke); diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp index eb9b2805d..ba32dc321 100644 --- a/src/widgets/select-toolbar.cpp +++ b/src/widgets/select-toolbar.cpp @@ -159,12 +159,16 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) document->ensureUpToDate (); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + + Geom::OptRect bbox_vis = selection->bounds(SPItem::APPROXIMATE_BBOX); + Geom::OptRect bbox_geom = selection->bounds(SPItem::GEOMETRIC_BBOX); + int prefs_bbox = prefs->getInt("/tools/bounding_box"); - SPItem::BBoxType bbox_type = (prefs_bbox ==0)? + SPItem::BBoxType bbox_type = (prefs_bbox == 0)? SPItem::APPROXIMATE_BBOX : SPItem::GEOMETRIC_BBOX; - Geom::OptRect bbox = selection->bounds(bbox_type); + Geom::OptRect bbox_user = selection->bounds(bbox_type); - if ( !bbox ) { + if ( !bbox_user ) { g_object_set_data(G_OBJECT(spw), "update", GINT_TO_POINTER(FALSE)); return; } @@ -186,35 +190,35 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) x0 = sp_units_get_pixels (a_x->value, unit); y0 = sp_units_get_pixels (a_y->value, unit); x1 = x0 + sp_units_get_pixels (a_w->value, unit); - xrel = sp_units_get_pixels (a_w->value, unit) / bbox->dimensions()[Geom::X]; + xrel = sp_units_get_pixels (a_w->value, unit) / bbox_user->dimensions()[Geom::X]; y1 = y0 + sp_units_get_pixels (a_h->value, unit); - yrel = sp_units_get_pixels (a_h->value, unit) / bbox->dimensions()[Geom::Y]; + yrel = sp_units_get_pixels (a_h->value, unit) / bbox_user->dimensions()[Geom::Y]; } else { double const x0_propn = a_x->value * unit.unittobase; - x0 = bbox->min()[Geom::X] * x0_propn; + x0 = bbox_user->min()[Geom::X] * x0_propn; double const y0_propn = a_y->value * unit.unittobase; - y0 = y0_propn * bbox->min()[Geom::Y]; + y0 = y0_propn * bbox_user->min()[Geom::Y]; xrel = a_w->value * unit.unittobase; - x1 = x0 + xrel * bbox->dimensions()[Geom::X]; + x1 = x0 + xrel * bbox_user->dimensions()[Geom::X]; yrel = a_h->value * unit.unittobase; - y1 = y0 + yrel * bbox->dimensions()[Geom::Y]; + y1 = y0 + yrel * bbox_user->dimensions()[Geom::Y]; } // Keep proportions if lock is on GtkToggleAction *lock = GTK_TOGGLE_ACTION( g_object_get_data(G_OBJECT(spw), "lock") ); if ( gtk_toggle_action_get_active(lock) ) { if (adj == a_h) { - x1 = x0 + yrel * bbox->dimensions()[Geom::X]; + x1 = x0 + yrel * bbox_user->dimensions()[Geom::X]; } else if (adj == a_w) { - y1 = y0 + xrel * bbox->dimensions()[Geom::Y]; + y1 = y0 + xrel * bbox_user->dimensions()[Geom::Y]; } } // scales and moves, in px - double mh = fabs(x0 - bbox->min()[Geom::X]); - double sh = fabs(x1 - bbox->max()[Geom::X]); - double mv = fabs(y0 - bbox->min()[Geom::Y]); - double sv = fabs(y1 - bbox->max()[Geom::Y]); + double mh = fabs(x0 - bbox_user->min()[Geom::X]); + double sh = fabs(x1 - bbox_user->max()[Geom::X]); + double mv = fabs(y0 - bbox_user->min()[Geom::Y]); + double sv = fabs(y1 - bbox_user->max()[Geom::Y]); // unless the unit is %, convert the scales and moves to the unit if (unit.base == SP_UNIT_ABSOLUTE || unit.base == SP_UNIT_DEVICE) { @@ -244,11 +248,11 @@ sp_object_layout_any_value_changed(GtkAdjustment *adj, SPWidget *spw) Geom::Affine scaler; if (bbox_type == SPItem::APPROXIMATE_BBOX) { - // get_scale_transform_with_stroke() is intended for VISUAL (or APPROXIMATE) bounding boxes, not geometrical ones! - scaler = get_scale_transform_with_stroke (*bbox, strokewidth, transform_stroke, x0, y0, x1, y1); + scaler = get_scale_transform_with_unequal_stroke (*bbox_vis, *bbox_geom, transform_stroke, x0, y0, x1, y1); } else { - // we'll trick it into using a geometrical bounding box though, by setting the stroke width to zero - scaler = get_scale_transform_with_stroke (*bbox, 0, false, x0, y0, x1, y1); + // get_scale_transform_with_stroke() is intended for VISUAL (or APPROXIMATE) bounding boxes, not geometrical ones! + // we'll trick it into using a geometric bounding box though, by setting the stroke width to zero + scaler = get_scale_transform_with_uniform_stroke (*bbox_user, 0, false, x0, y0, x1, y1); } sp_selection_apply_affine(selection, scaler); -- cgit v1.2.3 From 476773dea7a4bf2136beba4b31f44a0dca16fa40 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 11 Jul 2011 09:19:35 +0100 Subject: Drop some unused gdl files that cause build failure on Windows (bzr r10440) --- src/libgdl/gdl-dock-layout.c | 1437 ---------------------------------------- src/libgdl/gdl-dock-layout.h | 98 --- src/libgdl/gdl.h | 1 - src/libgdl/test-combo-button.c | 111 ---- src/libgdl/test-dock.c | 314 --------- 5 files changed, 1961 deletions(-) delete mode 100644 src/libgdl/gdl-dock-layout.c delete mode 100644 src/libgdl/gdl-dock-layout.h delete mode 100644 src/libgdl/test-combo-button.c delete mode 100644 src/libgdl/test-dock.c diff --git a/src/libgdl/gdl-dock-layout.c b/src/libgdl/gdl-dock-layout.c deleted file mode 100644 index 7c5279507..000000000 --- a/src/libgdl/gdl-dock-layout.c +++ /dev/null @@ -1,1437 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Giráldez - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "gdl-i18n.h" -#include -#include -#include -#include - -#include "gdl-dock-layout.h" -#include "gdl-tools.h" -#include "gdl-dock-placeholder.h" - - -/* ----- Private variables ----- */ - -enum { - PROP_0, - PROP_MASTER, - PROP_DIRTY -}; - -#define ROOT_ELEMENT "dock-layout" -#define DEFAULT_LAYOUT "__default__" -#define LAYOUT_ELEMENT_NAME "layout" -#define NAME_ATTRIBUTE_NAME "name" - -#define LAYOUT_UI_FILE "layout.ui" - -enum { - COLUMN_NAME, - COLUMN_SHOW, - COLUMN_LOCKED, - COLUMN_ITEM -}; - -#define COLUMN_EDITABLE COLUMN_SHOW - -struct _GdlDockLayoutPrivate { - xmlDocPtr doc; - - /* layout list models */ - GtkListStore *items_model; - GtkListStore *layouts_model; - - /* idle control */ - gboolean idle_save_pending; -}; - -typedef struct _GdlDockLayoutUIData GdlDockLayoutUIData; - -struct _GdlDockLayoutUIData { - GdlDockLayout *layout; - GtkWidget *locked_check; - GtkTreeSelection *selection; -}; - - -/* ----- Private prototypes ----- */ - -static void gdl_dock_layout_class_init (GdlDockLayoutClass *klass); - -static void gdl_dock_layout_instance_init (GdlDockLayout *layout); - -static void gdl_dock_layout_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); - -static void gdl_dock_layout_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gdl_dock_layout_dispose (GObject *object); - -static void gdl_dock_layout_build_doc (GdlDockLayout *layout); - -static xmlNodePtr gdl_dock_layout_find_layout (GdlDockLayout *layout, - const gchar *name); - -static void gdl_dock_layout_build_models (GdlDockLayout *layout); - - -/* ----- Private implementation ----- */ - -GDL_CLASS_BOILERPLATE (GdlDockLayout, gdl_dock_layout, GObject, G_TYPE_OBJECT); - -static void -gdl_dock_layout_class_init (GdlDockLayoutClass *klass) -{ - GObjectClass *g_object_class = (GObjectClass *) klass; - - g_object_class->set_property = gdl_dock_layout_set_property; - g_object_class->get_property = gdl_dock_layout_get_property; - g_object_class->dispose = gdl_dock_layout_dispose; - - g_object_class_install_property ( - g_object_class, PROP_MASTER, - g_param_spec_object ("master", _("Master"), - _("GdlDockMaster object which the layout object " - "is attached to"), - GDL_TYPE_DOCK_MASTER, - G_PARAM_READWRITE)); - - g_object_class_install_property ( - g_object_class, PROP_DIRTY, - g_param_spec_boolean ("dirty", _("Dirty"), - _("True if the layouts have changed and need to be " - "saved to a file"), - FALSE, - G_PARAM_READABLE)); -} - -static void -gdl_dock_layout_instance_init (GdlDockLayout *layout) -{ - layout->master = NULL; - layout->dirty = FALSE; - layout->_priv = g_new0 (GdlDockLayoutPrivate, 1); - layout->_priv->idle_save_pending = FALSE; - - gdl_dock_layout_build_models (layout); -} - -static void -gdl_dock_layout_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GdlDockLayout *layout = GDL_DOCK_LAYOUT (object); - - switch (prop_id) { - case PROP_MASTER: - gdl_dock_layout_attach (layout, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - }; -} - -static void -gdl_dock_layout_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GdlDockLayout *layout = GDL_DOCK_LAYOUT (object); - - switch (prop_id) { - case PROP_MASTER: - g_value_set_object (value, layout->master); - break; - case PROP_DIRTY: - g_value_set_boolean (value, layout->dirty); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - }; -} - -static void -gdl_dock_layout_dispose (GObject *object) -{ - GdlDockLayout *layout; - - g_return_if_fail (object != NULL); - g_return_if_fail (GDL_IS_DOCK_LAYOUT (object)); - - layout = GDL_DOCK_LAYOUT (object); - - if (layout->master) - gdl_dock_layout_attach (layout, NULL); - - if (layout->_priv) { - if (layout->_priv->idle_save_pending) { - layout->_priv->idle_save_pending = FALSE; - g_idle_remove_by_data (layout); - } - - if (layout->_priv->doc) { - xmlFreeDoc (layout->_priv->doc); - layout->_priv->doc = NULL; - } - - if (layout->_priv->items_model) { - g_object_unref (layout->_priv->items_model); - g_object_unref (layout->_priv->layouts_model); - layout->_priv->items_model = NULL; - layout->_priv->layouts_model = NULL; - } - - xmlFreeDoc(layout->_priv->doc); - g_free (layout->_priv); - layout->_priv = NULL; - } -} - -static void -gdl_dock_layout_build_doc (GdlDockLayout *layout) -{ - g_return_if_fail (layout->_priv->doc == NULL); - - layout->_priv->doc = xmlNewDoc (BAD_CAST "1.0"); - layout->_priv->doc->children = xmlNewDocNode (layout->_priv->doc, NULL, - BAD_CAST ROOT_ELEMENT, NULL); -} - -static xmlNodePtr -gdl_dock_layout_find_layout (GdlDockLayout *layout, - const gchar *name) -{ - xmlNodePtr node; - gboolean found = FALSE; - - g_return_val_if_fail (layout != NULL, NULL); - - if (!layout->_priv->doc) - return NULL; - - /* get document root */ - node = layout->_priv->doc->children; - for (node = node->children; node; node = node->next) { - xmlChar *layout_name; - - if (strcmp ((char*)node->name, LAYOUT_ELEMENT_NAME)) - /* skip non-layout element */ - continue; - - /* we want the first layout */ - if (!name) - break; - - layout_name = xmlGetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME); - if (!strcmp (name, (char*)layout_name)) - found = TRUE; - xmlFree (layout_name); - - if (found) - break; - }; - return node; -} - -static void -gdl_dock_layout_build_models (GdlDockLayout *layout) -{ - if (!layout->_priv->items_model) { - layout->_priv->items_model = gtk_list_store_new (4, - G_TYPE_STRING, - G_TYPE_BOOLEAN, - G_TYPE_BOOLEAN, - G_TYPE_POINTER); - gtk_tree_sortable_set_sort_column_id ( - GTK_TREE_SORTABLE (layout->_priv->items_model), - COLUMN_NAME, GTK_SORT_ASCENDING); - } - - if (!layout->_priv->layouts_model) { - layout->_priv->layouts_model = gtk_list_store_new (2, G_TYPE_STRING, - G_TYPE_BOOLEAN); - gtk_tree_sortable_set_sort_column_id ( - GTK_TREE_SORTABLE (layout->_priv->layouts_model), - COLUMN_NAME, GTK_SORT_ASCENDING); - } -} - -static void -build_list (GdlDockObject *object, GList **list) -{ - /* add only items, not toplevels */ - if (GDL_IS_DOCK_ITEM (object)) - *list = g_list_prepend (*list, object); -} - -static void -update_items_model (GdlDockLayout *layout) -{ - GList *items, *l; - GtkTreeIter iter; - GtkListStore *store; - gchar *long_name; - gboolean locked; - - g_return_if_fail (layout != NULL); - g_return_if_fail (layout->_priv->items_model != NULL); - - if (!layout->master) - return; - - /* build items list */ - items = NULL; - gdl_dock_master_foreach (layout->master, (GFunc) build_list, &items); - - /* walk the current model */ - store = layout->_priv->items_model; - - /* update items model data after a layout load */ - if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)) { - gboolean valid = TRUE; - - while (valid) { - GdlDockItem *item; - - gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, - COLUMN_ITEM, &item, - -1); - if (item) { - /* look for the object in the items list */ - for (l = items; l && l->data != item; l = l->next); - - if (l) { - /* found, update data */ - g_object_get (item, - "long-name", &long_name, - "locked", &locked, - NULL); - gtk_list_store_set (store, &iter, - COLUMN_NAME, long_name, - COLUMN_SHOW, GDL_DOCK_OBJECT_ATTACHED (item), - COLUMN_LOCKED, locked, - -1); - g_free (long_name); - - /* remove the item from the linked list and keep on walking the model */ - items = g_list_delete_link (items, l); - valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter); - - } else { - /* not found, which means the item has been removed */ - valid = gtk_list_store_remove (store, &iter); - - } - - } else { - /* not a valid row */ - valid = gtk_list_store_remove (store, &iter); - } - } - } - - /* add any remaining objects */ - for (l = items; l; l = l->next) { - GdlDockObject *object = l->data; - - g_object_get (object, - "long-name", &long_name, - "locked", &locked, - NULL); - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, - COLUMN_ITEM, object, - COLUMN_NAME, long_name, - COLUMN_SHOW, GDL_DOCK_OBJECT_ATTACHED (object), - COLUMN_LOCKED, locked, - -1); - g_free (long_name); - } - - g_list_free (items); -} - -static void -update_layouts_model (GdlDockLayout *layout) -{ - GList *items, *l; - GtkTreeIter iter; - - g_return_if_fail (layout != NULL); - g_return_if_fail (layout->_priv->layouts_model != NULL); - - /* build layouts list */ - gtk_list_store_clear (layout->_priv->layouts_model); - items = gdl_dock_layout_get_layouts (layout, FALSE); - for (l = items; l; l = l->next) { - gtk_list_store_append (layout->_priv->layouts_model, &iter); - gtk_list_store_set (layout->_priv->layouts_model, &iter, - COLUMN_NAME, l->data, COLUMN_EDITABLE, TRUE, - -1); - g_free (l->data); - }; - g_list_free (items); -} - - -/* ------- UI functions & callbacks ------ */ - -static void -load_layout_cb (GtkWidget *w, - gpointer data) -{ - GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; - - GtkTreeModel *model; - GtkTreeIter iter; - GdlDockLayout *layout = ui_data->layout; - gchar *name; - - g_return_if_fail (layout != NULL); - - if (gtk_tree_selection_get_selected (ui_data->selection, &model, &iter)) { - gtk_tree_model_get (model, &iter, - COLUMN_NAME, &name, - -1); - gdl_dock_layout_load_layout (layout, name); - g_free (name); - } -} - -static void -delete_layout_cb (GtkWidget *w, gpointer data) -{ - GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; - - GtkTreeModel *model; - GtkTreeIter iter; - GdlDockLayout *layout = ui_data->layout; - gchar *name; - - g_return_if_fail (layout != NULL); - - if (gtk_tree_selection_get_selected (ui_data->selection, &model, &iter)) { - gtk_tree_model_get (model, &iter, - COLUMN_NAME, &name, - -1); - gdl_dock_layout_delete_layout (layout, name); - gtk_list_store_remove (GTK_LIST_STORE (model), &iter); - g_free (name); - }; -} - -static void -show_toggled_cb (GtkCellRendererToggle *renderer, - gchar *path_str, - gpointer data) -{ - GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; - - GdlDockLayout *layout = ui_data->layout; - GtkTreeModel *model; - GtkTreeIter iter; - GtkTreePath *path = gtk_tree_path_new_from_string (path_str); - gboolean value; - GdlDockItem *item; - - g_return_if_fail (layout != NULL); - - model = GTK_TREE_MODEL (layout->_priv->items_model); - gtk_tree_model_get_iter (model, &iter, path); - gtk_tree_model_get (model, &iter, - COLUMN_SHOW, &value, - COLUMN_ITEM, &item, - -1); - - value = !value; - if (value) - gdl_dock_item_show_item (item); - else - gdl_dock_item_hide_item (item); - - gtk_tree_path_free (path); -} - -static void -all_locked_toggled_cb (GtkWidget *widget, - gpointer data) -{ - GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) data; - GdlDockMaster *master; - gboolean locked; - - g_return_if_fail (ui_data->layout != NULL); - master = ui_data->layout->master; - g_return_if_fail (master != NULL); - - locked = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); - g_object_set (master, "locked", locked ? 1 : 0, NULL); -} - -static void -layout_ui_destroyed (GtkWidget *widget, - gpointer user_data) -{ - GdlDockLayoutUIData *ui_data; - - /* widget is the GtkContainer */ - ui_data = g_object_get_data (G_OBJECT (widget), "ui_data"); - if (ui_data) { - if (ui_data->layout) { - if (ui_data->layout->master) - /* disconnet the notify handler */ - g_signal_handlers_disconnect_matched (ui_data->layout->master, - G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, - ui_data); - - g_object_remove_weak_pointer (G_OBJECT (ui_data->layout), - (gpointer *) &ui_data->layout); - ui_data->layout = NULL; - } - g_object_set_data (G_OBJECT (widget), "ui_data", NULL); - g_free (ui_data); - } -} - -static void -master_locked_notify_cb (GdlDockMaster *master, - GParamSpec *pspec, - gpointer user_data) -{ - GdlDockLayoutUIData *ui_data = (GdlDockLayoutUIData *) user_data; - gint locked; - - g_object_get (master, "locked", &locked, NULL); - if (locked == -1) { - gtk_toggle_button_set_inconsistent ( - GTK_TOGGLE_BUTTON (ui_data->locked_check), TRUE); - } - else { - gtk_toggle_button_set_inconsistent ( - GTK_TOGGLE_BUTTON (ui_data->locked_check), FALSE); - gtk_toggle_button_set_active ( - GTK_TOGGLE_BUTTON (ui_data->locked_check), (locked == 1)); - } -} - -static GtkBuilder * -load_interface () -{ - GtkBuilder *gui; - gchar *gui_file; - GError* error = NULL; - - /* load ui */ - gui_file = g_build_filename (GDL_UIDIR, LAYOUT_UI_FILE, NULL); - gui = gtk_builder_new(); - gtk_builder_add_from_file (gui, gui_file, &error); - g_free (gui_file); - if (error) { - g_warning (_("Could not load layout user interface file '%s'"), - LAYOUT_UI_FILE); - g_object_unref (gui); - g_error_free (error); - return NULL; - }; - return gui; -} - -static GtkWidget * -gdl_dock_layout_construct_items_ui (GdlDockLayout *layout) -{ - GtkBuilder *gui; - GtkWidget *dialog; - GtkWidget *items_list; - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; - - GdlDockLayoutUIData *ui_data; - - /* load the interface if it wasn't provided */ - gui = load_interface (); - - if (!gui) - return NULL; - - /* get the container */ - dialog = GTK_WIDGET (gtk_builder_get_object (gui, "layout_dialog")); - - ui_data = g_new0 (GdlDockLayoutUIData, 1); - ui_data->layout = layout; - g_object_add_weak_pointer (G_OBJECT (layout), - (gpointer *) &ui_data->layout); - g_object_set_data (G_OBJECT (dialog), "ui_data", ui_data); - - /* get ui widget references */ - ui_data->locked_check = GTK_WIDGET (gtk_builder_get_object (gui, "locked_check")); - items_list = GTK_WIDGET (gtk_builder_get_object(gui, "items_list")); - - /* locked check connections */ - g_signal_connect (ui_data->locked_check, "toggled", - (GCallback) all_locked_toggled_cb, ui_data); - if (layout->master) { - g_signal_connect (layout->master, "notify::locked", - (GCallback) master_locked_notify_cb, ui_data); - /* force update now */ - master_locked_notify_cb (layout->master, NULL, ui_data); - } - - /* set models */ - gtk_tree_view_set_model (GTK_TREE_VIEW (items_list), - GTK_TREE_MODEL (layout->_priv->items_model)); - - /* construct list views */ - renderer = gtk_cell_renderer_toggle_new (); - g_signal_connect (renderer, "toggled", - G_CALLBACK (show_toggled_cb), ui_data); - column = gtk_tree_view_column_new_with_attributes (_("Visible"), - renderer, - "active", COLUMN_SHOW, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (items_list), column); - - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes (_("Item"), - renderer, - "text", COLUMN_NAME, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (items_list), column); - - /* connect signals */ - g_signal_connect (dialog, "destroy", (GCallback) layout_ui_destroyed, NULL); - - g_object_unref (gui); - - return dialog; -} - -static void -cell_edited_cb (GtkCellRendererText *cell, - const gchar *path_string, - const gchar *new_text, - gpointer data) -{ - GdlDockLayoutUIData *ui_data = data; - GtkTreeModel *model; - GtkTreePath *path; - GtkTreeIter iter; - gchar *name; - xmlNodePtr node; - - model = GTK_TREE_MODEL (ui_data->layout->_priv->layouts_model); - path = gtk_tree_path_new_from_string (path_string); - - gtk_tree_model_get_iter (model, &iter, path); - gtk_tree_model_get (model, &iter, COLUMN_NAME, &name, -1); - - node = gdl_dock_layout_find_layout (ui_data->layout, name); - g_free (name); - g_return_if_fail (node != NULL); - - xmlSetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME, BAD_CAST new_text); - gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_NAME, new_text, - COLUMN_EDITABLE, TRUE, -1); - - gdl_dock_layout_save_layout (ui_data->layout, new_text); - - gtk_tree_path_free (path); -} - -static GtkWidget * -gdl_dock_layout_construct_layouts_ui (GdlDockLayout *layout) -{ - GtkBuilder *gui; - GtkWidget *container; - GtkWidget *layouts_list; - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; - GtkWidget *load_button; - GtkWidget *delete_button; - - GdlDockLayoutUIData *ui_data; - - /* load the interface if it wasn't provided */ - gui = load_interface (); - - if (!gui) - return NULL; - - /* get the container */ - container = GTK_WIDGET (gtk_builder_get_object(gui, "layouts_vbox")); - - ui_data = g_new0 (GdlDockLayoutUIData, 1); - ui_data->layout = layout; - g_object_add_weak_pointer (G_OBJECT (layout), - (gpointer *) &ui_data->layout); - g_object_set_data (G_OBJECT (container), "ui-data", ui_data); - - /* get ui widget references */ - layouts_list = GTK_WIDGET (gtk_builder_get_object(gui, "layouts_list")); - - /* set models */ - gtk_tree_view_set_model (GTK_TREE_VIEW (layouts_list), - GTK_TREE_MODEL (layout->_priv->layouts_model)); - - /* construct list views */ - renderer = gtk_cell_renderer_text_new (); - g_signal_connect (G_OBJECT (renderer), "edited", - G_CALLBACK (cell_edited_cb), ui_data); - column = gtk_tree_view_column_new_with_attributes (_("Name"), renderer, - "text", COLUMN_NAME, - "editable", COLUMN_EDITABLE, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (layouts_list), column); - - ui_data->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (layouts_list)); - - /* connect signals */ - load_button = GTK_WIDGET (gtk_builder_get_object(gui, "load_button")); - delete_button = GTK_WIDGET (gtk_builder_get_object(gui, "delete_button")); - - g_signal_connect (load_button, "clicked", (GCallback) load_layout_cb, ui_data); - g_signal_connect (delete_button, "clicked", (GCallback) delete_layout_cb, ui_data); - - - g_signal_connect (container, "destroy", (GCallback) layout_ui_destroyed, NULL); - - g_object_unref (gui); - - return container; -} - -/* ----- Save & Load layout functions --------- */ - -#define GDL_DOCK_PARAM_CONSTRUCTION(p) \ - (((p)->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY)) != 0) - -static GdlDockObject * -gdl_dock_layout_setup_object (GdlDockMaster *master, - xmlNodePtr node, - gint *n_after_params, - GParameter **after_params) -{ - GdlDockObject *object = NULL; - GType object_type; - xmlChar *object_name; - GObjectClass *object_class = NULL; - - GParamSpec **props; - guint n_props, i; - GParameter *params = NULL; - gint n_params = 0; - GValue serialized = { 0, }; - - object_name = xmlGetProp (node, BAD_CAST GDL_DOCK_NAME_PROPERTY); - if (object_name && strlen ((char*)object_name) > 0) { - /* the object must already be bound to the master */ - object = gdl_dock_master_get_object (master, (char*)object_name); - - xmlFree (object_name); - object_type = object ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE; - } - else { - /* the object should be automatic, so create it by - retrieving the object type from the dock registry */ - object_type = gdl_dock_object_type_from_nick ((char*)node->name); - if (object_type == G_TYPE_NONE) { - g_warning (_("While loading layout: don't know how to create " - "a dock object whose nick is '%s'"), node->name); - } - } - - if (object_type == G_TYPE_NONE || !G_TYPE_IS_CLASSED (object_type)) - return NULL; - - object_class = g_type_class_ref (object_type); - props = g_object_class_list_properties (object_class, &n_props); - - /* create parameter slots */ - /* extra parameter is the master */ - params = g_new0 (GParameter, n_props + 1); - *after_params = g_new0 (GParameter, n_props); - *n_after_params = 0; - - /* initialize value used for transformations */ - g_value_init (&serialized, GDL_TYPE_DOCK_PARAM); - - for (i = 0; i < n_props; i++) { - xmlChar *xml_prop; - - /* process all exported properties, skip - GDL_DOCK_NAME_PROPERTY, since named items should - already by in the master */ - if (!(props [i]->flags & GDL_DOCK_PARAM_EXPORT) || - !strcmp (props [i]->name, GDL_DOCK_NAME_PROPERTY)) - continue; - - /* get the property from xml if there is one */ - xml_prop = xmlGetProp (node, BAD_CAST props [i]->name); - if (xml_prop) { - g_value_set_static_string (&serialized, (char*)xml_prop); - - if (!GDL_DOCK_PARAM_CONSTRUCTION (props [i]) && - (props [i]->flags & GDL_DOCK_PARAM_AFTER)) { - (*after_params) [*n_after_params].name = props [i]->name; - g_value_init (&((* after_params) [*n_after_params].value), - props [i]->value_type); - g_value_transform (&serialized, - &((* after_params) [*n_after_params].value)); - (*n_after_params)++; - } - else if (!object || (!GDL_DOCK_PARAM_CONSTRUCTION (props [i]) && object)) { - params [n_params].name = props [i]->name; - g_value_init (&(params [n_params].value), props [i]->value_type); - g_value_transform (&serialized, &(params [n_params].value)); - n_params++; - } - xmlFree (xml_prop); - } - } - g_value_unset (&serialized); - g_free (props); - - if (!object) { - params [n_params].name = GDL_DOCK_MASTER_PROPERTY; - g_value_init (¶ms [n_params].value, GDL_TYPE_DOCK_MASTER); - g_value_set_object (¶ms [n_params].value, master); - n_params++; - - /* construct the object if we have to */ - /* set the master, so toplevels are created correctly and - other objects are bound */ - object = g_object_newv (object_type, n_params, params); - } - else { - /* set the parameters to the existing object */ - for (i = 0; i < n_params; i++) - g_object_set_property (G_OBJECT (object), - params [i].name, - ¶ms [i].value); - } - - /* free the parameters (names are static/const strings) */ - for (i = 0; i < n_params; i++) - g_value_unset (¶ms [i].value); - g_free (params); - - /* finally unref object class */ - g_type_class_unref (object_class); - - return object; -} - -static void -gdl_dock_layout_recursive_build (GdlDockMaster *master, - xmlNodePtr parent_node, - GdlDockObject *parent) -{ - GdlDockObject *object; - xmlNodePtr node; - - g_return_if_fail (master != NULL && parent_node != NULL); - - /* if parent is NULL we should build toplevels */ - for (node = parent_node->children; node; node = node->next) { - GParameter *after_params = NULL; - gint n_after_params = 0, i; - - object = gdl_dock_layout_setup_object (master, node, - &n_after_params, - &after_params); - - if (object) { - gdl_dock_object_freeze (object); - - /* recurse here to catch placeholders */ - gdl_dock_layout_recursive_build (master, node, object); - - if (GDL_IS_DOCK_PLACEHOLDER (object)) - /* placeholders are later attached to the parent */ - gdl_dock_object_detach (object, FALSE); - - /* apply "after" parameters */ - for (i = 0; i < n_after_params; i++) { - g_object_set_property (G_OBJECT (object), - after_params [i].name, - &after_params [i].value); - /* unset and free the value */ - g_value_unset (&after_params [i].value); - } - g_free (after_params); - - /* add the object to the parent */ - if (parent) { - if (GDL_IS_DOCK_PLACEHOLDER (object)) - gdl_dock_placeholder_attach (GDL_DOCK_PLACEHOLDER (object), - parent); - else if (gdl_dock_object_is_compound (parent)) { - gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (object)); - if (GTK_WIDGET_VISIBLE (parent)) - gtk_widget_show (GTK_WIDGET (object)); - } - } - else { - GdlDockObject *controller = gdl_dock_master_get_controller (master); - if (controller != object && GTK_WIDGET_VISIBLE (controller)) - gtk_widget_show (GTK_WIDGET (object)); - } - - /* call reduce just in case any child is missing */ - if (gdl_dock_object_is_compound (object)) - gdl_dock_object_reduce (object); - - gdl_dock_object_thaw (object); - } - } -} - -static void -_gdl_dock_layout_foreach_detach (GdlDockObject *object) -{ - gdl_dock_object_detach (object, TRUE); -} - -static void -gdl_dock_layout_foreach_toplevel_detach (GdlDockObject *object) -{ - gtk_container_foreach (GTK_CONTAINER (object), - (GtkCallback) _gdl_dock_layout_foreach_detach, - NULL); -} - -static void -gdl_dock_layout_load (GdlDockMaster *master, xmlNodePtr node) -{ - g_return_if_fail (master != NULL && node != NULL); - - /* start by detaching all items from the toplevels */ - gdl_dock_master_foreach_toplevel (master, TRUE, - (GFunc) gdl_dock_layout_foreach_toplevel_detach, - NULL); - - gdl_dock_layout_recursive_build (master, node, NULL); -} - -static void -gdl_dock_layout_foreach_object_save (GdlDockObject *object, - gpointer user_data) -{ - struct { - xmlNodePtr where; - GHashTable *placeholders; - } *info = user_data, info_child; - - xmlNodePtr node; - guint n_props, i; - GParamSpec **props; - GValue attr = { 0, }; - - g_return_if_fail (object != NULL && GDL_IS_DOCK_OBJECT (object)); - g_return_if_fail (info->where != NULL); - - node = xmlNewChild (info->where, - NULL, /* ns */ - BAD_CAST gdl_dock_object_nick_from_type (G_TYPE_FROM_INSTANCE (object)), - BAD_CAST NULL); /* contents */ - - /* get object exported attributes */ - props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), - &n_props); - g_value_init (&attr, GDL_TYPE_DOCK_PARAM); - for (i = 0; i < n_props; i++) { - GParamSpec *p = props [i]; - - if (p->flags & GDL_DOCK_PARAM_EXPORT) { - GValue v = { 0, }; - - /* export this parameter */ - /* get the parameter value */ - g_value_init (&v, p->value_type); - g_object_get_property (G_OBJECT (object), - p->name, - &v); - - /* only save the object "name" if it is set - (i.e. don't save the empty string) */ - if (strcmp (p->name, GDL_DOCK_NAME_PROPERTY) || - g_value_get_string (&v)) { - if (g_value_transform (&v, &attr)) - xmlSetProp (node, BAD_CAST p->name, BAD_CAST g_value_get_string (&attr)); - } - - /* free the parameter value */ - g_value_unset (&v); - } - } - g_value_unset (&attr); - g_free (props); - - info_child = *info; - info_child.where = node; - - /* save placeholders for the object */ - if (info->placeholders && !GDL_IS_DOCK_PLACEHOLDER (object)) { - GList *lph = g_hash_table_lookup (info->placeholders, object); - for (; lph; lph = lph->next) - gdl_dock_layout_foreach_object_save (GDL_DOCK_OBJECT (lph->data), - (gpointer) &info_child); - } - - /* recurse the object if appropiate */ - if (gdl_dock_object_is_compound (object)) { - gtk_container_foreach (GTK_CONTAINER (object), - (GtkCallback) gdl_dock_layout_foreach_object_save, - (gpointer) &info_child); - } -} - -static void -add_placeholder (GdlDockObject *object, - GHashTable *placeholders) -{ - if (GDL_IS_DOCK_PLACEHOLDER (object)) { - GdlDockObject *host; - GList *l; - - g_object_get (object, "host", &host, NULL); - if (host) { - l = g_hash_table_lookup (placeholders, host); - /* add the current placeholder to the list of placeholders - for that host */ - if (l) - g_hash_table_steal (placeholders, host); - - l = g_list_prepend (l, object); - g_hash_table_insert (placeholders, host, l); - g_object_unref (host); - } - } -} - -static void -gdl_dock_layout_save (GdlDockMaster *master, - xmlNodePtr where) -{ - struct { - xmlNodePtr where; - GHashTable *placeholders; - } info; - - GHashTable *placeholders; - - g_return_if_fail (master != NULL && where != NULL); - - /* build the placeholder's hash: the hash keeps lists of - * placeholders associated to each object, so that we can save the - * placeholders when we are saving the object (since placeholders - * don't show up in the normal widget hierarchy) */ - placeholders = g_hash_table_new_full (g_direct_hash, g_direct_equal, - NULL, (GDestroyNotify) g_list_free); - gdl_dock_master_foreach (master, (GFunc) add_placeholder, placeholders); - - /* save the layout recursively */ - info.where = where; - info.placeholders = placeholders; - - gdl_dock_master_foreach_toplevel (master, TRUE, - (GFunc) gdl_dock_layout_foreach_object_save, - (gpointer) &info); - - g_hash_table_destroy (placeholders); -} - - -/* ----- Public interface ----- */ - -/** - * gdl_dock_layout_new: - * @dock: The dock item. - * Creates a new #GdlDockLayout - * - * Returns: New #GdlDockLayout item. - */ -GdlDockLayout * -gdl_dock_layout_new (GdlDock *dock) -{ - GdlDockMaster *master = NULL; - - /* get the master of the given dock */ - if (dock) - master = GDL_DOCK_OBJECT_GET_MASTER (dock); - - return g_object_new (GDL_TYPE_DOCK_LAYOUT, - "master", master, - NULL); -} - -static gboolean -gdl_dock_layout_idle_save (GdlDockLayout *layout) -{ - /* save default layout */ - gdl_dock_layout_save_layout (layout, NULL); - - layout->_priv->idle_save_pending = FALSE; - - return FALSE; -} - -static void -gdl_dock_layout_layout_changed_cb (GdlDockMaster *master, - GdlDockLayout *layout) -{ - /* update model */ - update_items_model (layout); - - if (!layout->_priv->idle_save_pending) { - g_idle_add ((GSourceFunc) gdl_dock_layout_idle_save, layout); - layout->_priv->idle_save_pending = TRUE; - } -} - - -/** - * gdl_dock_layout_attach: - * @layout: The layout item - * @master: The master item to which the layout will be attached - * - * Attach the @layout to the @master and delete the reference to - * the master that the layout attached previously - */ -void -gdl_dock_layout_attach (GdlDockLayout *layout, - GdlDockMaster *master) -{ - g_return_if_fail (layout != NULL); - g_return_if_fail (master == NULL || GDL_IS_DOCK_MASTER (master)); - - if (layout->master) { - g_signal_handlers_disconnect_matched (layout->master, G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, layout); - g_object_unref (layout->master); - } - - gtk_list_store_clear (layout->_priv->items_model); - - layout->master = master; - if (layout->master) { - g_object_ref (layout->master); - g_signal_connect (layout->master, "layout-changed", - (GCallback) gdl_dock_layout_layout_changed_cb, - layout); - } - - update_items_model (layout); -} - -/** -* gdl_dock_layout_load_layout: -* @layout: The dock item. -* @name: The name of the layout to load. -* -* Loads the layout with the given name to the memory. -* This will set #GdlDockLayout:dirty to %TRUE. -* -* See also gdl_dock_layout_load_from_file() -* Returns: %TRUE if layout successfully loaded else %FALSE -*/ -gboolean -gdl_dock_layout_load_layout (GdlDockLayout *layout, - const gchar *name) -{ - xmlNodePtr node; - gchar *layout_name; - - g_return_val_if_fail (layout != NULL, FALSE); - - if (!layout->_priv->doc || !layout->master) - return FALSE; - - if (!name) - layout_name = DEFAULT_LAYOUT; - else - layout_name = (gchar *) name; - - node = gdl_dock_layout_find_layout (layout, layout_name); - if (!node && !name) - /* return the first layout if the default name failed to load */ - node = gdl_dock_layout_find_layout (layout, NULL); - - if (node) { - gdl_dock_layout_load (layout->master, node); - return TRUE; - } else - return FALSE; -} - -/** -* gdl_dock_layout_save_layout: -* @layout: The dock item. -* @name: The name of the layout to save. -* -* Saves the @layout with the given name to the memory. -* This will set #GdlDockLayout:dirty to %TRUE. -* -* See also gdl_dock_layout_save_to_file(). -*/ - -void -gdl_dock_layout_save_layout (GdlDockLayout *layout, - const gchar *name) -{ - xmlNodePtr node; - gchar *layout_name; - - g_return_if_fail (layout != NULL); - g_return_if_fail (layout->master != NULL); - - if (!layout->_priv->doc) - gdl_dock_layout_build_doc (layout); - - if (!name) - layout_name = DEFAULT_LAYOUT; - else - layout_name = (gchar *) name; - - /* delete any previously node with the same name */ - node = gdl_dock_layout_find_layout (layout, layout_name); - if (node) { - xmlUnlinkNode (node); - xmlFreeNode (node); - }; - - /* create the new node */ - node = xmlNewChild (layout->_priv->doc->children, NULL, - BAD_CAST LAYOUT_ELEMENT_NAME, NULL); - xmlSetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME, BAD_CAST layout_name); - - /* save the layout */ - gdl_dock_layout_save (layout->master, node); - layout->dirty = TRUE; - g_object_notify (G_OBJECT (layout), "dirty"); -} - -/** -* gdl_dock_layout_delete_layout: -* @layout: The dock item. -* @name: The name of the layout to delete. -* -* Deletes the layout with the given name from the memory. -* This will set #GdlDockLayout:dirty to %TRUE. -*/ - -void -gdl_dock_layout_delete_layout (GdlDockLayout *layout, - const gchar *name) -{ - xmlNodePtr node; - - g_return_if_fail (layout != NULL); - - /* don't allow the deletion of the default layout */ - if (!name || !strcmp (DEFAULT_LAYOUT, name)) - return; - - node = gdl_dock_layout_find_layout (layout, name); - if (node) { - xmlUnlinkNode (node); - xmlFreeNode (node); - layout->dirty = TRUE; - g_object_notify (G_OBJECT (layout), "dirty"); - } -} - -/** -* gdl_dock_layout_run_manager: -* @layout: The dock item. -* -* Runs the layout manager. -*/ - -void -gdl_dock_layout_run_manager (GdlDockLayout *layout) -{ - GtkWidget *dialog; - GtkWidget *parent = NULL; - - g_return_if_fail (layout != NULL); - - if (!layout->master) - /* not attached to a dock yet */ - return; - - dialog = gdl_dock_layout_construct_items_ui (layout); - - gtk_dialog_run (GTK_DIALOG (dialog)); - - gtk_widget_destroy (dialog); -} - -/** -* gdl_dock_layout_load_from_file: -* @layout: The layout item. -* @filename: The name of the file to load. -* -* Loads the layout from file with the given @filename. -* This will set #GdlDockLayout:dirty to %FALSE. -* -* Returns: %TRUE if @layout successfully loaded else %FALSE -*/ - -gboolean -gdl_dock_layout_load_from_file (GdlDockLayout *layout, - const gchar *filename) -{ - gboolean retval = FALSE; - - if (layout->_priv->doc) { - xmlFreeDoc (layout->_priv->doc); - layout->_priv->doc = NULL; - layout->dirty = FALSE; - g_object_notify (G_OBJECT (layout), "dirty"); - } - - /* FIXME: cannot open symlinks */ - if (g_file_test (filename, G_FILE_TEST_IS_REGULAR)) { - layout->_priv->doc = xmlParseFile (filename); - if (layout->_priv->doc) { - xmlNodePtr root = layout->_priv->doc->children; - /* minimum validation: test the root element */ - if (root && !strcmp ((char*)root->name, ROOT_ELEMENT)) { - update_layouts_model (layout); - retval = TRUE; - } else { - xmlFreeDoc (layout->_priv->doc); - layout->_priv->doc = NULL; - } - } - } - - return retval; -} - -/** - * gdl_dock_layout_save_to_file: - * @layout: The layout item. - * @filename: Name of the file we want to save in layout - * - * This function saves the current layout in XML format to - * the file with the given @filename. - * - * Returns: %TRUE if @layout successfuly save to the file, otherwise %FALSE. - */ -gboolean -gdl_dock_layout_save_to_file (GdlDockLayout *layout, - const gchar *filename) -{ - FILE *file_handle; - int bytes; - gboolean retval = FALSE; - - g_return_val_if_fail (layout != NULL, FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - /* if there is still no xml doc, create an empty one */ - if (!layout->_priv->doc) - gdl_dock_layout_build_doc (layout); - - file_handle = fopen (filename, "w"); - if (file_handle) { - bytes = xmlDocDump (file_handle, layout->_priv->doc); - if (bytes >= 0) { - layout->dirty = FALSE; - g_object_notify (G_OBJECT (layout), "dirty"); - retval = TRUE; - }; - fclose (file_handle); - }; - - return retval; -} - -/** - * gdl_dock_layout_is_dirty: - * @layout: The layout item. - * - * Checks whether the XML tree in memory is different from the file where the layout was saved. - * Returns: %TRUE is the layout in the memory is different from the file, else %FALSE. - */ -gboolean -gdl_dock_layout_is_dirty (GdlDockLayout *layout) -{ - g_return_val_if_fail (layout != NULL, FALSE); - - return layout->dirty; -}; - -GList * -gdl_dock_layout_get_layouts (GdlDockLayout *layout, - gboolean include_default) -{ - GList *retval = NULL; - xmlNodePtr node; - - g_return_val_if_fail (layout != NULL, NULL); - - if (!layout->_priv->doc) - return NULL; - - node = layout->_priv->doc->children; - for (node = node->children; node; node = node->next) { - xmlChar *name; - - if (strcmp ((char*)node->name, LAYOUT_ELEMENT_NAME)) - continue; - - name = xmlGetProp (node, BAD_CAST NAME_ATTRIBUTE_NAME); - if (include_default || strcmp ((char*)name, DEFAULT_LAYOUT)) - retval = g_list_prepend (retval, g_strdup ((char*)name)); - xmlFree (name); - }; - retval = g_list_reverse (retval); - - return retval; -} - -GtkWidget * -gdl_dock_layout_get_layouts_ui (GdlDockLayout *layout) -{ - GtkWidget *ui; - - g_return_val_if_fail (layout != NULL, NULL); - ui = gdl_dock_layout_construct_layouts_ui (layout); - - return ui; -} diff --git a/src/libgdl/gdl-dock-layout.h b/src/libgdl/gdl-dock-layout.h deleted file mode 100644 index 82dce5de8..000000000 --- a/src/libgdl/gdl-dock-layout.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * This file is part of the GNOME Devtools Libraries. - * - * Copyright (C) 2002 Gustavo Girldez - * - * 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.1 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, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - - -#ifndef __GDL_DOCK_LAYOUT_H__ -#define __GDL_DOCK_LAYOUT_H__ - -#include -#include "libgdl/gdl-dock-master.h" -#include "libgdl/gdl-dock.h" - -G_BEGIN_DECLS - -/* standard macros */ -#define GDL_TYPE_DOCK_LAYOUT (gdl_dock_layout_get_type ()) -#define GDL_DOCK_LAYOUT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayout)) -#define GDL_DOCK_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) -#define GDL_IS_DOCK_LAYOUT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDL_TYPE_DOCK_LAYOUT)) -#define GDL_IS_DOCK_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDL_TYPE_DOCK_LAYOUT)) -#define GDL_DOCK_LAYOUT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GDL_TYPE_DOCK_LAYOUT, GdlDockLayoutClass)) - -/* data types & structures */ -typedef struct _GdlDockLayout GdlDockLayout; -typedef struct _GdlDockLayoutClass GdlDockLayoutClass; -typedef struct _GdlDockLayoutPrivate GdlDockLayoutPrivate; - -struct _GdlDockLayout { - GObject g_object; - - gboolean dirty; - GdlDockMaster *master; - - GdlDockLayoutPrivate *_priv; -}; - -struct _GdlDockLayoutClass { - GObjectClass g_object_class; -}; - - -/* public interface */ - -GType gdl_dock_layout_get_type (void); - -GdlDockLayout *gdl_dock_layout_new (GdlDock *dock); - -void gdl_dock_layout_attach (GdlDockLayout *layout, - GdlDockMaster *master); - -gboolean gdl_dock_layout_load_layout (GdlDockLayout *layout, - const gchar *name); - -void gdl_dock_layout_save_layout (GdlDockLayout *layout, - const gchar *name); - -void gdl_dock_layout_delete_layout (GdlDockLayout *layout, - const gchar *name); - -GList *gdl_dock_layout_get_layouts (GdlDockLayout *layout, - gboolean include_default); - -void gdl_dock_layout_run_manager (GdlDockLayout *layout); - -gboolean gdl_dock_layout_load_from_file (GdlDockLayout *layout, - const gchar *filename); - -gboolean gdl_dock_layout_save_to_file (GdlDockLayout *layout, - const gchar *filename); - -gboolean gdl_dock_layout_is_dirty (GdlDockLayout *layout); - -GtkWidget *gdl_dock_layout_get_ui (GdlDockLayout *layout); -GtkWidget *gdl_dock_layout_get_items_ui (GdlDockLayout *layout); -GtkWidget *gdl_dock_layout_get_layouts_ui (GdlDockLayout *layout); - -G_END_DECLS - -#endif - - diff --git a/src/libgdl/gdl.h b/src/libgdl/gdl.h index 467b2b67e..d136b9295 100644 --- a/src/libgdl/gdl.h +++ b/src/libgdl/gdl.h @@ -28,7 +28,6 @@ #include "libgdl/gdl-dock.h" #include "libgdl/gdl-dock-item.h" #include "libgdl/gdl-dock-item-grip.h" -#include "libgdl/gdl-dock-layout.h" #include "libgdl/gdl-dock-bar.h" #endif diff --git a/src/libgdl/test-combo-button.c b/src/libgdl/test-combo-button.c deleted file mode 100644 index 35ce3fff3..000000000 --- a/src/libgdl/test-combo-button.c +++ /dev/null @@ -1,111 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* test-combo-button.c - * - * Copyright (C) 2003 Jeroen Zwartepoorte - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include "gdl-combo-button.h" - -static void -combo_button_activate_default_cb (GdlComboButton *combo, - gpointer data) -{ - g_message ("combo_button_activate_default_cb"); -} - -int -main (int argc, char **argv) -{ - GtkWidget *window, *hbox, *combo, *menu, *menuitem; - GdkPixbuf *icon; - - gtk_init (&argc, &argv); - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_signal_connect (G_OBJECT (window), "delete_event", - G_CALLBACK (gtk_main_quit), NULL); - gtk_window_set_title (GTK_WINDOW (window), "Combo button test"); - gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - - hbox = gtk_hbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (window), hbox); - - combo = gtk_button_new_from_stock (GTK_STOCK_OPEN); - gtk_button_set_relief (GTK_BUTTON (combo), GTK_RELIEF_NONE); - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - - menu = gtk_menu_new (); - menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_OPEN, NULL); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE, NULL); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show_all (menu); - - combo = gdl_combo_button_new (); - gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Run"); - gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); - icon = gtk_widget_render_icon (combo, GTK_STOCK_EXECUTE, - GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); - gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - - g_signal_connect (combo, "activate_default", - G_CALLBACK (combo_button_activate_default_cb), NULL); - - combo = gtk_button_new_from_stock (GTK_STOCK_SAVE); - gtk_button_set_relief (GTK_BUTTON (combo), GTK_RELIEF_NONE); - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - - menu = gtk_menu_new (); - menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_OPEN, NULL); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_SAVE, NULL); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - gtk_widget_show_all (menu); - - combo = gdl_combo_button_new (); - gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Open"); - gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); - icon = gtk_widget_render_icon (combo, GTK_STOCK_OPEN, - GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); - gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); - gtk_widget_set_sensitive (combo, FALSE); - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - - g_signal_connect (combo, "activate_default", - G_CALLBACK (combo_button_activate_default_cb), NULL); - - menu = gtk_menu_new (); - combo = gdl_combo_button_new (); - gdl_combo_button_set_label (GDL_COMBO_BUTTON (combo), "Open"); - gdl_combo_button_set_menu (GDL_COMBO_BUTTON (combo), GTK_MENU (menu)); - icon = gtk_widget_render_icon (combo, GTK_STOCK_OPEN, - GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); - gdl_combo_button_set_icon (GDL_COMBO_BUTTON (combo), icon); - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - - gtk_widget_show_all (window); - - gtk_main (); - - return 0; -} diff --git a/src/libgdl/test-dock.c b/src/libgdl/test-dock.c deleted file mode 100644 index abaecf703..000000000 --- a/src/libgdl/test-dock.c +++ /dev/null @@ -1,314 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "gdl-tools.h" - -#include "gdl-dock.h" -#include "gdl-dock-item.h" -#include "gdl-dock-notebook.h" -#include "gdl-dock-layout.h" -#include "gdl-dock-placeholder.h" -#include "gdl-dock-bar.h" -#include "gdl-switcher.h" - -#include - -/* ---- end of debugging code */ - -static void -on_style_button_toggled (GtkRadioButton *button, GdlDock *dock) -{ - gboolean active; - GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock); - GdlSwitcherStyle style = - GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), - "__style_id")); - active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); - if (active) { - g_object_set (master, "switcher-style", style, NULL); - } -} - -static GtkWidget * -create_style_button (GtkWidget *dock, GtkWidget *box, GtkWidget *group, - GdlSwitcherStyle style, const gchar *style_text) -{ - GdlSwitcherStyle current_style; - GtkWidget *button1; - GdlDockMaster *master = GDL_DOCK_OBJECT_GET_MASTER (dock); - - g_object_get (master, "switcher-style", ¤t_style, NULL); - button1 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (group), - style_text); - gtk_widget_show (button1); - g_object_set_data (G_OBJECT (button1), "__style_id", - GINT_TO_POINTER (style)); - if (current_style == style) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button1), TRUE); - } - g_signal_connect (button1, "toggled", - G_CALLBACK (on_style_button_toggled), - dock); - gtk_box_pack_start (GTK_BOX (box), button1, FALSE, FALSE, 0); - return button1; -} - -static GtkWidget * -create_styles_item (GtkWidget *dock) -{ - GtkWidget *vbox1; - GtkWidget *group; - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - - group = create_style_button (dock, vbox1, NULL, - GDL_SWITCHER_STYLE_ICON, "Only icon"); - group = create_style_button (dock, vbox1, group, - GDL_SWITCHER_STYLE_TEXT, "Only text"); - group = create_style_button (dock, vbox1, group, - GDL_SWITCHER_STYLE_BOTH, - "Both icons and texts"); - group = create_style_button (dock, vbox1, group, - GDL_SWITCHER_STYLE_TOOLBAR, - "Desktop toolbar style"); - group = create_style_button (dock, vbox1, group, - GDL_SWITCHER_STYLE_TABS, - "Notebook tabs"); - group = create_style_button (dock, vbox1, group, - GDL_SWITCHER_STYLE_NONE, - "None of the above"); - return vbox1; -} - -static GtkWidget * -create_item (const gchar *button_title) -{ - GtkWidget *vbox1; - GtkWidget *button1; - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - - button1 = gtk_button_new_with_label (button_title); - gtk_widget_show (button1); - gtk_box_pack_start (GTK_BOX (vbox1), button1, TRUE, TRUE, 0); - - return vbox1; -} - -/* creates a simple widget with a textbox inside */ -static GtkWidget * -create_text_item () -{ - GtkWidget *vbox1; - GtkWidget *scrolledwindow1; - GtkWidget *text; - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - - scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_show (scrolledwindow1); - gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), - GTK_SHADOW_ETCHED_IN); - text = gtk_text_view_new (); - g_object_set (text, "wrap-mode", GTK_WRAP_WORD, NULL); - gtk_widget_show (text); - gtk_container_add (GTK_CONTAINER (scrolledwindow1), text); - - return vbox1; -} - -static void -button_dump_cb (GtkWidget *button, gpointer data) -{ - /* Dump XML tree. */ - gdl_dock_layout_save_to_file (GDL_DOCK_LAYOUT (data), "layout.xml"); - g_spawn_command_line_async ("cat layout.xml", NULL); -} - -static void -run_layout_manager_cb (GtkWidget *w, gpointer data) -{ - GdlDockLayout *layout = GDL_DOCK_LAYOUT (data); - gdl_dock_layout_run_manager (layout); -} - -static void -save_layout_cb (GtkWidget *w, gpointer data) -{ - GdlDockLayout *layout = GDL_DOCK_LAYOUT (data); - GtkWidget *dialog, *hbox, *label, *entry; - gint response; - - dialog = gtk_dialog_new_with_buttons ("New Layout", - NULL, - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_OK, - GTK_RESPONSE_OK, - NULL); - - hbox = gtk_hbox_new (FALSE, 8); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0); - - label = gtk_label_new ("Name:"); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - entry = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); - - gtk_widget_show_all (hbox); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - - if (response == GTK_RESPONSE_OK) { - const gchar *name = gtk_entry_get_text (GTK_ENTRY (entry)); - gdl_dock_layout_save_layout (layout, name); - } - - gtk_widget_destroy (dialog); -} - -int -main (int argc, char **argv) -{ - GtkWidget *item1, *item2, *item3; - GtkWidget *items [4]; - GtkWidget *win, *table, *button, *box; - int i; - GdlDockLayout *layout; - GtkWidget *dock, *dockbar; - - gtk_init (&argc, &argv); - - /*gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);*/ - - /* window creation */ - win = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_signal_connect (win, "delete_event", - G_CALLBACK (gtk_main_quit), NULL); - gtk_window_set_title (GTK_WINDOW (win), "Docking widget test"); - gtk_window_set_default_size (GTK_WINDOW (win), 400, 400); - - /* table */ - table = gtk_vbox_new (FALSE, 5); - gtk_container_add (GTK_CONTAINER (win), table); - gtk_container_set_border_width (GTK_CONTAINER (table), 10); - - /* create the dock */ - dock = gdl_dock_new (); - - /* ... and the layout manager */ - layout = gdl_dock_layout_new (GDL_DOCK (dock)); - - /* create the dockbar */ - dockbar = gdl_dock_bar_new (GDL_DOCK (dock)); - gdl_dock_bar_set_style(GDL_DOCK_BAR(dockbar), GDL_DOCK_BAR_TEXT); - - box = gtk_hbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (table), box, TRUE, TRUE, 0); - - gtk_box_pack_start (GTK_BOX (box), dockbar, FALSE, FALSE, 0); - gtk_box_pack_end (GTK_BOX (box), dock, TRUE, TRUE, 0); - - /* create the dock items */ - item1 = gdl_dock_item_new ("item1", "Item #1", GDL_DOCK_ITEM_BEH_LOCKED); - gtk_container_add (GTK_CONTAINER (item1), create_text_item ()); - gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item1), - GDL_DOCK_TOP); - gtk_widget_show (item1); - - item2 = gdl_dock_item_new_with_stock ("item2", "Item #2: Select the switcher style for notebooks", - GTK_STOCK_EXECUTE, - GDL_DOCK_ITEM_BEH_NORMAL); - g_object_set (item2, "resize", FALSE, NULL); - gtk_container_add (GTK_CONTAINER (item2), create_styles_item (dock)); - gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item2), - GDL_DOCK_RIGHT); - gtk_widget_show (item2); - - item3 = gdl_dock_item_new_with_stock ("item3", "Item #3 has accented characters (áéíóúñ)", - GTK_STOCK_CONVERT, - GDL_DOCK_ITEM_BEH_NORMAL | - GDL_DOCK_ITEM_BEH_CANT_CLOSE); - gtk_container_add (GTK_CONTAINER (item3), create_item ("Button 3")); - gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (item3), - GDL_DOCK_BOTTOM); - gtk_widget_show (item3); - - items [0] = gdl_dock_item_new_with_stock ("Item #4", "Item #4", - GTK_STOCK_JUSTIFY_FILL, - GDL_DOCK_ITEM_BEH_NORMAL | - GDL_DOCK_ITEM_BEH_CANT_ICONIFY); - gtk_container_add (GTK_CONTAINER (items [0]), create_text_item ()); - gtk_widget_show (items [0]); - gdl_dock_add_item (GDL_DOCK (dock), GDL_DOCK_ITEM (items [0]), GDL_DOCK_BOTTOM); - for (i = 1; i < 3; i++) { - gchar name[10]; - - snprintf (name, sizeof (name), "Item #%d", i + 4); - items [i] = gdl_dock_item_new_with_stock (name, name, GTK_STOCK_NEW, - GDL_DOCK_ITEM_BEH_NORMAL); - gtk_container_add (GTK_CONTAINER (items [i]), create_text_item ()); - gtk_widget_show (items [i]); - - gdl_dock_object_dock (GDL_DOCK_OBJECT (items [0]), - GDL_DOCK_OBJECT (items [i]), - GDL_DOCK_CENTER, NULL); - }; - - /* tests: manually dock and move around some of the items */ - gdl_dock_item_dock_to (GDL_DOCK_ITEM (item3), GDL_DOCK_ITEM (item1), - GDL_DOCK_TOP, -1); - - gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), GDL_DOCK_ITEM (item3), - GDL_DOCK_RIGHT, -1); - - gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), GDL_DOCK_ITEM (item3), - GDL_DOCK_LEFT, -1); - - gdl_dock_item_dock_to (GDL_DOCK_ITEM (item2), NULL, - GDL_DOCK_FLOATING, -1); - - box = gtk_hbox_new (TRUE, 5); - gtk_box_pack_end (GTK_BOX (table), box, FALSE, FALSE, 0); - - button = gtk_button_new_from_stock (GTK_STOCK_SAVE); - g_signal_connect (button, "clicked", - G_CALLBACK (save_layout_cb), layout); - gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); - - button = gtk_button_new_with_label ("Layout Manager"); - g_signal_connect (button, "clicked", - G_CALLBACK (run_layout_manager_cb), layout); - gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); - - button = gtk_button_new_with_label ("Dump XML"); - g_signal_connect (button, "clicked", - G_CALLBACK (button_dump_cb), layout); - gtk_box_pack_end (GTK_BOX (box), button, FALSE, TRUE, 0); - - gtk_widget_show_all (win); - - gdl_dock_placeholder_new ("ph1", GDL_DOCK_OBJECT (dock), GDL_DOCK_TOP, FALSE); - gdl_dock_placeholder_new ("ph2", GDL_DOCK_OBJECT (dock), GDL_DOCK_BOTTOM, FALSE); - gdl_dock_placeholder_new ("ph3", GDL_DOCK_OBJECT (dock), GDL_DOCK_LEFT, FALSE); - gdl_dock_placeholder_new ("ph4", GDL_DOCK_OBJECT (dock), GDL_DOCK_RIGHT, FALSE); - - gtk_main (); - - g_object_unref (layout); - - return 0; -} -- cgit v1.2.3 From 2b83f175e30021735625712d580adf0e3dd7077f Mon Sep 17 00:00:00 2001 From: Josh Andler Date: Mon, 11 Jul 2011 07:49:37 -0700 Subject: Clean up more whiteboard stuff and fix header name in file (bzr r10441) --- build.xml | 15 --- src/color-profile-test.h | 2 +- src/ui/dialog/session-player.cpp | 231 --------------------------------------- src/ui/dialog/session-player.h | 134 ----------------------- 4 files changed, 1 insertion(+), 381 deletions(-) delete mode 100644 src/ui/dialog/session-player.cpp delete mode 100644 src/ui/dialog/session-player.h diff --git a/build.xml b/build.xml index 6c4525d4e..746188c1d 100755 --- a/build.xml +++ b/build.xml @@ -353,21 +353,6 @@ - - - - - - - - - - - - - - - diff --git a/src/color-profile-test.h b/src/color-profile-test.h index 4b679e5b7..b3ead5d55 100644 --- a/src/color-profile-test.h +++ b/src/color-profile-test.h @@ -9,7 +9,7 @@ #include "color-profile.h" -#include "color-profile-fns.h" +#include "cms-system.h" class ColorProfileTest : public CxxTest::TestSuite { diff --git a/src/ui/dialog/session-player.cpp b/src/ui/dialog/session-player.cpp deleted file mode 100644 index 040c1419b..000000000 --- a/src/ui/dialog/session-player.cpp +++ /dev/null @@ -1,231 +0,0 @@ -/** @file - * @brief Whiteboard session playback control dialog - implementation - */ -/* Authors: - * David Yip - * Abhishek Sharma - * - * Copyright (c) 2005 Authors - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include - -#include "inkscape.h" -#include "path-prefix.h" - -#include "desktop.h" -#include "desktop-handles.h" -#include "document.h" - -#include "jabber_whiteboard/node-tracker.h" -#include "jabber_whiteboard/session-manager.h" -#include "jabber_whiteboard/session-file-player.h" - -#include "ui/dialog/session-player.h" - -#include "util/ucompose.hpp" - -namespace Inkscape { - -namespace UI { - -namespace Dialog { - -SessionPlaybackDialog* -SessionPlaybackDialog::create() -{ - return new SessionPlaybackDialogImpl(); -} - -SessionPlaybackDialogImpl::SessionPlaybackDialogImpl() - : _delay(100, 1, 5000, 10, 100), _delayentry(_delay) -{ - this->_desktop = this->getDesktop(); - this->_sm = this->_desktop->whiteboard_session_manager(); - this->_sfp = this->_sm->session_player(); - this->_openfile.set_text(this->_sfp->filename()); - - this->_construct(); - this->get_vbox()->show_all_children(); -} - -SessionPlaybackDialogImpl::~SessionPlaybackDialogImpl() -{ - -} - -void -SessionPlaybackDialogImpl::_construct() -{ - Gtk::VBox* main = this->get_vbox(); - - // Dialog organization - this->_filemanager.set_label(_("Session file")); - this->_playback.set_label(_("Playback controls")); - this->_currentmsgbox.set_label(_("Message information")); - - this->_filemanager.set_border_width(4); - this->_playback.set_border_width(4); - this->_fm.set_border_width(4); - this->_toolbarbox.set_border_width(4); - - // Active session file display - // fixme: Does this mean the active file for the session, or the file for the active session? - // Please indicate which with a TRANSLATORS comment. - this->_labels[0].set_text(_("Active session file:")); - this->_labels[1].set_text(_("Delay (milliseconds):")); - - this->_openfile.set_editable(false); - - this->_filebox.pack_start(this->_labels[0], true, false, 8); - this->_filebox.pack_end(this->_openfile, true, true, 0); - - // Unload/load buttons - this->_close.set_label(_("Close file")); - this->_open.set_label(_("Open new file")); - this->_setdelay.set_label(_("Set delay")); - - // Attach callbacks - this->_close.signal_clicked().connect(sigc::bind< 0 >(sigc::mem_fun(*this, &SessionPlaybackDialogImpl::_respCallback), CLOSE_FILE)); - this->_open.signal_clicked().connect(sigc::bind< 0 >(sigc::mem_fun(*this, &SessionPlaybackDialogImpl::_respCallback), OPEN_FILE)); - this->_setdelay.signal_clicked().connect(sigc::bind< 0 >(sigc::mem_fun(*this, &SessionPlaybackDialogImpl::_respCallback), RESET_DELAY)); - - // Button box - this->_filebuttons.pack_start(this->_close, true, false, 0); - this->_filebuttons.pack_start(this->_open, true, false, 0); - - // Message information box - this->_currentmsgbuffer = Gtk::TextBuffer::create(); - this->_currentmsgview.set_buffer(this->_currentmsgbuffer); - this->_currentmsgview.set_editable(false); - this->_currentmsgview.set_cursor_visible(false); - this->_currentmsgview.set_wrap_mode(Gtk::WRAP_WORD); - this->_currentmsgscroller.add(this->_currentmsgview); - this->_currentmsgbox.add(this->_currentmsgscroller); - this->_sfp->setMessageOutputWidget(this->_currentmsgbuffer); - - // Delay setting - // parameters: initial lower upper single-incr page-incr - this->_delayentry.set_numeric(true); - - // Playback controls - this->_playbackcontrols.set_show_arrow(false); - - this->_controls[0].set_label("Rewind"); - this->_controls[1].set_label("Go back one"); - this->_controls[2].set_label("Pause"); - this->_controls[3].set_label("Go forward one"); - this->_controls[4].set_label("Play"); - - this->_controls[0].set_tooltip(this->_tooltips, _("Rewind")); - this->_controls[1].set_tooltip(this->_tooltips, _("Go back one change")); - this->_controls[2].set_tooltip(this->_tooltips, _("Pause")); - this->_controls[3].set_tooltip(this->_tooltips, _("Go forward one change")); - this->_controls[4].set_tooltip(this->_tooltips, _("Play")); - - for(int i = 0; i < 5; i++) { - this->_playbackcontrols.append(this->_controls[i], sigc::bind< 0 >(sigc::mem_fun(*this, &SessionPlaybackDialogImpl::_respCallback), TOOLBAR_BASE + i)); - } - - this->_delaybox.pack_start(this->_labels[1]); - this->_delaybox.pack_start(this->_delayentry); - this->_delaybox.pack_end(this->_setdelay); - - this->_toolbarbox.pack_start(this->_delaybox); - this->_toolbarbox.pack_end(this->_playbackcontrols); - - // Pack widgets into frames - this->_fm.pack_start(this->_filebox); - this->_fm.pack_end(this->_filebuttons); - - this->_filemanager.add(this->_fm); - this->_playback.add(this->_toolbarbox); - - // Pack widgets into main vbox - main->pack_start(this->_filemanager); - main->pack_start(this->_playback); - main->pack_end(this->_currentmsgbox); -} - -void -SessionPlaybackDialogImpl::_respCallback(int resp) -{ - g_log(NULL, G_LOG_LEVEL_DEBUG, "_respCallback: %u", resp); - switch(resp) { - case CLOSE_FILE: - this->_sfp->unload(); - break; - case OPEN_FILE: { - Gtk::FileChooserDialog sessionfiledlg(_("Open session file"), Gtk::FILE_CHOOSER_ACTION_OPEN); - sessionfiledlg.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - sessionfiledlg.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK); - - int result = sessionfiledlg.run(); - switch (result) { - case Gtk::RESPONSE_OK: - this->_sm->clearDocument(); - SPDocumentUndo::done(sp_desktop_document(this->_desktop), SP_VERB_NONE, - /* TODO: annotate */ "session-player.cpp:186"); - this->_sm->loadSessionFile(sessionfiledlg.get_filename()); - this->_openfile.set_text(this->_sfp->filename()); - break; - default: - break; - } - break; - } - case RESET_DELAY: - this->_sfp->setDelay(this->_delayentry.get_value_as_int()); - break; - case REWIND: - if (this->_sfp->_playing) { - this->_sfp->stop(); - } - this->_sfp->_curdir = Whiteboard::SessionFilePlayer::BACKWARD; - this->_sfp->start(); - break; - case STEP_REWIND: - this->_sfp->step(Whiteboard::SessionFilePlayer::BACKWARD); - break; - case PAUSE: - this->_sfp->stop(); - break; - case STEP_PLAY: - this->_sfp->step(Whiteboard::SessionFilePlayer::FORWARD); - break; - case PLAY: - if (this->_sfp->_playing) { - this->_sfp->stop(); - } - this->_sfp->_curdir = Whiteboard::SessionFilePlayer::FORWARD; - this->_sfp->start(); - break; - default: - break; - } -} - -} - -} - -} - -/* - 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/ui/dialog/session-player.h b/src/ui/dialog/session-player.h deleted file mode 100644 index 2d235cd25..000000000 --- a/src/ui/dialog/session-player.h +++ /dev/null @@ -1,134 +0,0 @@ -/** @file - * @brief Whiteboard session playback control dialog - */ -/* Authors: - * David Yip - * - * Copyright (c) 2005 Authors - * Released under GNU GPL, read the file 'COPYING' for more information - */ - -#ifndef __SESSION_PLAYBACK_DIALOG_H__ -#define __SESSION_PLAYBACK_DIALOG_H__ - -#include "verbs.h" -#include "dialog.h" - -#include "gtkmm/toolbutton.h" -#include "gtkmm/toolbar.h" -#include "gtkmm/expander.h" - -#include "ui/widget/icon-widget.h" - -struct SPDesktop; - -namespace Inkscape { - -namespace Whiteboard { - -class SessionManager; -class SessionFilePlayer; - -} - -namespace UI { - -namespace Dialog { - -class SessionPlaybackDialog : public Dialog { -public: - SessionPlaybackDialog() : Dialog("/dialogs/session_playback", SP_VERB_DIALOG_WHITEBOARD_SESSIONPLAYBACK) - { - - } - - static SessionPlaybackDialog* create(); - - virtual ~SessionPlaybackDialog() - { - - } -private: - SessionPlaybackDialog(SessionPlaybackDialog const& dlg); // no copy - void operator=(SessionPlaybackDialog const& dlg); // no assign -}; - -class SessionPlaybackDialogImpl : public SessionPlaybackDialog { -public: - SessionPlaybackDialogImpl(); - ~SessionPlaybackDialogImpl(); - -private: - // GTK+ widgets - Gtk::HBox _filebox; - Gtk::HBox _filebuttons; - Gtk::HBox _toolbarbox; - Gtk::HBox _delaybox; - - Gtk::Entry _openfile; - - Gtk::Label _labels[2]; - Gtk::ToolButton _controls[5]; - - Gtk::Button _close, _open, _setdelay; - - Gtk::Tooltips _tooltips; - Gtk::Toolbar _playbackcontrols; - Gtk::Adjustment _delay; - Widget::SpinButton _delayentry; - - Gtk::Frame _filemanager; - Gtk::VBox _fm; - - Gtk::Frame _playback; - - Gtk::Expander _currentmsgbox; - Glib::RefPtr _currentmsgbuffer; - Gtk::TextView _currentmsgview; - Gtk::ScrolledWindow _currentmsgscroller; - - // Construction and callback - void _construct(); - void _respCallback(int resp); - - // SessionManager and SPDesktop pointers - ::SPDesktop* _desktop; - Whiteboard::SessionManager* _sm; - Whiteboard::SessionFilePlayer* _sfp; - - // button values - static unsigned short const CLOSE_FILE = 0; - static unsigned short const OPEN_FILE = 1; - static unsigned short const RESET_DELAY = 2; - - static unsigned short const TOOLBAR_BASE = 10; - static unsigned short const REWIND = TOOLBAR_BASE + 0; - static unsigned short const STEP_REWIND = TOOLBAR_BASE + 1; - static unsigned short const PAUSE = TOOLBAR_BASE + 2; - static unsigned short const STEP_PLAY = TOOLBAR_BASE + 3; - static unsigned short const PLAY = TOOLBAR_BASE + 4; - - - // noncopyable - SessionPlaybackDialogImpl(SessionPlaybackDialogImpl const& dlg); // no copy - void operator=(SessionPlaybackDialogImpl const& dlg); // no assign -}; - -} - -} - -} - -#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 : -- cgit v1.2.3 From ac0399fc40d5c578206c736754ea4c1c73e368a0 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 11 Jul 2011 20:10:12 +0200 Subject: Tutorials. New Greek translation of Advanced, Calligraphy, Elements and Tips by Dimitris Spingos. (bzr r10442) --- share/tutorials/Makefile.am | 4 + share/tutorials/tutorial-advanced.el.svg | 511 +++++++++++++++++ share/tutorials/tutorial-calligraphy.el.svg | 815 ++++++++++++++++++++++++++++ share/tutorials/tutorial-elements.el.svg | 692 +++++++++++++++++++++++ share/tutorials/tutorial-tips.el.svg | 684 +++++++++++++++++++++++ 5 files changed, 2706 insertions(+) create mode 100644 share/tutorials/tutorial-advanced.el.svg create mode 100644 share/tutorials/tutorial-calligraphy.el.svg create mode 100644 share/tutorials/tutorial-elements.el.svg create mode 100644 share/tutorials/tutorial-tips.el.svg diff --git a/share/tutorials/Makefile.am b/share/tutorials/Makefile.am index 4901ec30b..6b24ce34f 100644 --- a/share/tutorials/Makefile.am +++ b/share/tutorials/Makefile.am @@ -33,6 +33,7 @@ tutorial_DATA = \ tutorial-advanced.ca.svg \ tutorial-advanced.cs.svg \ tutorial-advanced.de.svg \ + tutorial-advanced.el.svg \ tutorial-advanced.es.svg \ tutorial-advanced.eu.svg \ tutorial-advanced.fa.svg \ @@ -84,6 +85,7 @@ tutorial_DATA = \ tutorial-calligraphy.ca.svg \ tutorial-calligraphy.cs.svg \ tutorial-calligraphy.de.svg \ + tutorial-calligraphy.el.svg \ tutorial-calligraphy.es.svg \ tutorial-calligraphy.eu.svg \ tutorial-calligraphy.fa.svg \ @@ -103,6 +105,7 @@ tutorial_DATA = \ tutorial-elements.be.svg \ tutorial-elements.ca.svg \ tutorial-elements.de.svg \ + tutorial-elements.el.svg \ tutorial-elements.es.svg \ tutorial-elements.eu.svg \ tutorial-elements.fa.svg \ @@ -155,6 +158,7 @@ tutorial_DATA = \ tutorial-tips.be.svg \ tutorial-tips.ca.svg \ tutorial-tips.de.svg \ + tutorial-tips.el.svg \ tutorial-tips.es.svg \ tutorial-tips.eu.svg \ tutorial-tips.fa.svg \ diff --git a/share/tutorials/tutorial-advanced.el.svg b/share/tutorials/tutorial-advanced.el.svg new file mode 100644 index 000000000..f39d55477 --- /dev/null +++ b/share/tutorials/tutorial-advanced.el.svg @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + Use Ctrl+down arrow to scroll + + + + ::ΠΡΟΧΩΡΗΜΈΝΟ + +bulia byak, buliabyak@users.sf.net and josh andler, scislac@users.sf.net + + + + + + Αυτό το μάθημα καλύπτει αντιγραφή/επικόλληση, επεξεργασία κόμβων, σχεδίαση ελεύθερη και bezier, χειρισμός μονοπατιού, boole, μετατοπίσεις, απλοποίηση και εργαλείο κειμένου. + + + + + + + Χρήση Ctrl+βέλη, τροχός ποντικιού ή σύρσιμο μεσαίου ποντικιού για κύλιση της σελίδας προς τα κάτω. Για τα βασικά της δημιουργίας αντικειμένου, επιλογής και μετασχηματισμού, δείτε το βασικό μάθημα στο Βοήθεια > Μαθήματα + + + Τεχνικές επικόλλησης + + + + + + + Μετά την αντιγραφή μερικών αντικειμένων με Ctrl+C ή αποκοπή με Ctrl+X, η κανονική εντολή Επικόλληση (Ctrl+V) επικολλά τα αντιγραμμένα αντικείμενα ακριβώς κάτω από το δρομέα του ποντικιού, εάν ο δρομέας είναι εκτός παραθύρου, στο κέντρο του παραθύρου εγγράφου. Όμως, τα αντικείμενα στο πρόχειρο θυμούνται ακόμα την αρχική θέση από την οποία αντιγράφηκαν και μπορούν να επικολληθούν πίσω εκεί με Επικκόληση επιτόπου (Ctrl+Alt+V). + + + + + + + Μια άλλη εντολή, Επικόλληση μορφοποίησης (Shift+Ctrl+V), εφαρμόζει τη μορφοποίηση του πρώτου αντικειμένου στο πρόχειρο στην τρέχουσα επιλογή. Η έτσι επικολλημένη "μορφοποίηση" περιλαμβάνει το γέμισμα, την πινελιά και ρυθμίσεις γραμματοσειρών, αλλά όχι το μέγεθος, σχήμα ή ειδικές παραμέτρους στον τύπο σχήματος, όπως ο αριθμός κορυφών αστεριού. + + + + + + + Ένα ακόμα σύνολο εντολών επικόλλησης, Επικόλληση μεγέθους, κλιμακώνει την επιλογή ώστε να ταιριάζει το επιθυμητό μέγεθος του γνωρίσματος των αντικειμένων προχείρου. Υπάρχει ένας αριθμός εντολών για το μέγεθος της επικόλλησης και είναι ως εξής: μέγεθος επικόλλησης, πλάτος επικόλλησης, ύψος επικόλλησης, επικόλληση μεγέθους ξεχωριστά, επικόλληση πλάτους ξεχωριστά και επικόλληση ύψους ξεχωριστά. + + + + + + + Η Επικόλληση μεγέθους κλιμακώνει τη συνολική επιλογή για να ταιριάζει με το συνολικό μέγεθος των αντικειμένων προχείρου. Η Επικόλληση πλάτους/Επικόλληση ύψους κλιμακώνει τη συνολική επιλογή οριζόντια/κάθετα για να ταιριάζει το πλάτος/ύψος των αντικειμένων προχείρου. Αυτές οι εντολές διατηρούν το λόγο κλιμάκωσης στη γραμμή ελέγχων επιλογέα εργαλείου (μεταξύ πεδίων πλάτους και ύψους), έτσι ώστε όταν το κλείδωμα πιέζεται, η άλλη διάσταση του επιλεγμένου αντικειμένου κλιμακώνεται κατά την ίδια αναλογία. Αλλιώς η άλλη διάσταση παραμένει αμετάβλητη. Οι εντολές που περιέχουν "ξεχωριστά" δουλεύουν παρόμοια με τις πιο πάνω περιγραφείσες εντολές, εκτός από την κλιμάκωση κάθε επιλεγμένου αντικειμένου ξεχωριστά για να ταιριάξει σε μέγεθος/πλάτος/ύψος των αντικειμένων προχείρου. + + + + + + + Το πρόχειρο είναι για όλο το σύστημα - μπορείτε να αντιγράψετε/επικολλήσετε αντικείμενα μεταξύ διαφορετικών στιγμιοτύπων του Inkscape καθώς και μεταξύ Inkscape και άλλων εφαρμογών (οι οποίες πρέπει να είναι ικανές να χειριστούν SVG στο πρόχειρο για να το χρησιμοποιήσουν). + + + Σχεδίαση ελεύθερων γραμμών και κανονικά μονοπάτια + + + + + + + Ο πιο απλός τρόπος δημιουργίας ενός ελεύθερου σχήματος είναι η σχεδίαση του χρησιμοποιώντας το εργαλείο μολύβι (ελεύθερων γραμμών) (F6): + + + + + + + + + + + + + + + + Εάν θέλετε πιο κανονικά σχήματα, χρησιμοποιείστε το εργαλείο πένα (Bezier) (Shift+F6): + + + + + + + + + + + + + + + + Με το εργαλείο πένα κάθε κλικ δημιουργεί έναν οξύ κόμβο χωρίς λαβές καμπύλης, έτσι μια σειρά κλικ παράγει μια ακολουθία τμημάτων ευθειών γραμμών. κλικ και σύρσιμο δημιουργεί έναν ομαλό κόμβο Bezier με δύο συγγραμμικές αντίθετες λαβές. Πατήστε Shift ενώ σύρετε μια λαβή για να περιστρέψετε μόνο μια λαβή και να καθορίσετε την άλλη. Ως συνήθως, το Ctrl περιορίζει την κατεύθυνση την κατεύθυνση είτε του τμήματος της τρέχουσας γραμμής ή των λαβών Bezier σε αυξήσεις 15 μοιρών. Πατήστε Enter για ολοκλήρωση της γραμμής, Esc για ακύρωση. Για να ακυρώσετε μόνο το τελευταίο τμήμα της ατελείωτης γραμμής, πατήστε Backspace. + + + + + + + Στα εργαλεία ελεύθερων γραμμών και bezier, το τρέχον επιλεγμένο μονοπάτι εμφανίζει μικρά τετράγωνα άγκυρες και στα δύο άκρα. Αυτές οι άγκυρες σας επιτρέπουν να συνεχίσετε αυτό το μονοπάτι (σχεδιάζοντας από μία από τις άγκυρες) ή να το κλείσετε (σχεδιάζοντας από τη μία άγκυρα στην άλλη) αντί για δημιουργία νέου μονοπατιού. + + + ΅Επεξεργασία μονοπατιών + + + + + + + Αντίθετα με τα σχήματα που δημιουργήθηκαν από εργαλεία σχημάτων, τα εργαλεία πένας και μολυβιού δημιουργούν αυτό που λέγεται μονοπάτια. Ένα μονοπάτι είναι μια σειρά τμημάτων ευθειών γραμμών και/ή καμπυλών Bezier που, όπως κάθε άλλο αντικείμενο Inkscape, μπορεί να έχει ελεύθερο γέμισμα και ιδιότητες πινελιάς. Αλλά αντίθετα με ένα σχήμα, ένα μονοπάτι μπορεί να επεξεργαστεί σύροντας ελεύθερα οποιοδήποτε κόμβο του (όχι μόνο τις προκαθορισμένες λαβές) ή σύροντας άμεσα ένα τμήμα του μονοπατιού. Επιλέξτε αυτό το μονοπάτι και μεταβείτε στο εργαλείο κόμβων (F2): + + + + + + + + Θα δείτε έναν αριθμό γκρι τετραγώνων κόμβων στο μονοπάτι. Αυτοί οι κόμβοι μπορούν να επιλεγούν με κλικ, Shift+κλικ ή σύρσιμοενός λάστιχου - ακριβώς όπως τα αντικείμενα επιλέγονται από το εργαλείο επιλογής. Μπορείτε επίσης να πατήσετε ένα τμήμα μονοπατιού για αυτόματη επιλογή των γειτονικών κόμβων. Οι επιλεγμένοι κόμβοι τονίζονται και εμφανίζουν τις λαβές κόμβων τους - έναν ή δύο μικρούς κύκλους συνδεμένους με κάθε επιλεγμένο κόμβο με ευθείες γραμμές. Το πλήκτρο ! αντιστρέφει την επιλογή κόμβου στα τρέχοντα υπομονοπάτια (δηλ. υπομονοπάτια με τουλάχιστον έναν επιλεγμένο κόμβο). Alt+! αντιστρέφει το συνολικό μονοπάτι. + + + + + + + Τα μονοπάτια επεξεργάζονται με σύρσιμο των κόμβων τους, λαβών κόμβων ή άμεσα σύροντας ένα τμήμα μονοπατιού. (Δοκιμάστε να σύρετε μερικούς κόμβους, λαβές και τμήματα μονοπατιού του πιο πάνω μονοπατιού.) Το Ctrl δουλεύει ως συνήθως περιορίζοντας την κίνηση και την περιστροφή. Τα πλήκτρα βέλους, τα πλήκτρα Tab, [, ], <, > με τους τροποποιητές τους όλα δουλεύουν όπως και στον επιλογέα, αλλά εφαρμόζονται σε κόμβους αντί για αντικείμενα. Μπορείτε να προσθέσετε κόμβους οπουδήποτε σε ένα μονοπάτι είτε διπλοπατώντας ή με Ctrl+Alt+Click στην επιθυμητή θέση. + + + + + + + Μπορείτε να διαγράψετε κόμβους με Del ή Ctrl+Alt+Click. Όταν διαγράφετε κόμβους γίνεται προσπάθεια διατήρησης του σχήματος του μονοπατιού, εάν επιθυμείτε οι λαβές των γειτονικών κόμβων να ανακληθούν (να μην διατηρήσουν το σχήμα) μπορείτε να διαγράψετε με Ctrl+Del. Επιπλέον, μπορείτε να διπλασιάσετε (Shift+D) τους επιλεγμένους κόμβους. Το μονοπάτι μπορεί να σπάσει (Shift+B) στους επιλεγμένους κόμβους ή εάν επιλέξετε δύο τελικούς κόμβους σε ένα μονοπάτι, μπορείτε να τους ενώσετε (Shift+J). + + + + + + + Ένας κόμβος μπορεί να γίνει απότομος (Shift+C), που σημαίνει ότι οι δυο του λαβές μπορούν να μετακινηθούν ανεξάρτητα σε κάθε γωνία μεταξύ τους, ομαλός (Shift+S), που σημαίνει ότι οι λαβές του είναι πάντοτε στην ίδια ευθεία γραμμή (συγγραμμικές) και συμμετρικός (Shift+Y), που είναι το ίδιο όπως ομαλός, αλλά οι λαβές έχουν επίσης το ίδιο μήκος. Όταν εναλλάσσετε τον τύπο του κόμβου, μπορείτε να διατηρήσετε τη θέση μιας από τις δύο λαβές αιωρώντας το ποντίκι σας από πάνω του, έτσι που μόνο η άλλη λαβή να περιστρέφεται/κλιμακώνεται για να ταιριάξει. + + + + + + + Επίσης, μπορείτε να ανακαλέσετε μια λαβή κόμβου μαζί με το Ctrl+click σ' αυτό. Εάν δύο γειτονικοί κόμβοι έχουν τις λαβές τους ανακαλεσμένες, το τμήμα μονοπατιού μεταξύ τους είναι μια ευθεία γραμμή. Για απόσπαση των ανακαλεσμένων κόμβων, Shift+σύρσιμο μακριά από τον κόμβο. + + + Υπομονοπάτια και συνδυασμός + + + + + + + Ένα αντικείμενο μονοπατιού μπορεί να περιέχει περισσότερα από ένα υπομονοπάτια. Ένα υπομονοπάτι είναι μια σειρά κόμβων συνδεμένων μεταξύ τους. (Συνεπώς, εάν ένα μονοπάτι έχει περισσότερα από ένα υπομονοπάτια, δεν συνδέονται όλοι οι κόμβοι του.) Κάτω αριστερά, τρία υπομονοπάτια ανήκουν σε ένα μονό σύνθετο μονοπάτι. Τα ίδια τρία υπομονοπάτια στα δεξιά είναι ανεξάρτητα αντικείμενα μονοπατιού: + + + + + + + + + + + Σημειώστε ότι ένα σύνθετο μονοπάτι δεν είναι το ίδιο όπως μια ομάδα. Είναι ένα απλό αντικείμενο που είναι επιλέξιμο ως σύνολο. Εάν επιλέξετε το πάνω αριστερό αντικείμενο και εναλλάξετε το εργαλείο κόμβου, θα δείτε κόμβους να εμφανίζονται και στα τρία υπομονοπάτια. Στα δεξιά, μπορείτε να επεξεργαστείτε κόμβο μόνο ενός μονοπατιού τη φορά. + + + + + + + Το Inkscape μπορεί να συνδυάσει μονοπάτια σε ένα σύνθετο μονοπάτι (Ctrl+K) και να διασπάσει ένα σύνθετο μονοπάτι σε ξεχωριστά μονοπάτια (Shift+Ctrl+K). Δοκιμάστε αυτές τις εντολές στα πιο πάνω παραδείγματα. Αφού ένα αντικείμενο μπορεί να έχει μόνο ένα γέμισμα και πινελιά, ένα νέο σύνθετο μονοπάτι παίρνει τη μορφοποίηση του πρώτου (χαμηλότατου στη διάταξη-z) αντικειμένου που συνδυάζεται. + + + + + + + Όταν συνδυάζετε επικαλυπτόμενα μονοπάτια με γέμισμα, συνήθως το γέμισμα θα εξαφανιστεί στις περιοχές όπου τα μονοπάτια επικαλύπτονται: + + + + + + + + Αυτός είναι ο πιο εύκολος τρόπος για δημιουργία αντικειμένων με τρύπες σε αυτά. Για περισσότερο ισχυρές εντολές μονοπατιού, δείτε "πράξεις Boole" πιο κάτω. + + + Μετατροπή σε μονοπάτι + + + + + + + Κάθε σχήμα ή αντικείμενο κειμένου μπορεί να μετατραπεί σε μονοπάτι (Shift+Ctrl+C). Αυτή η λειτουργία δεν αλλάζει την εμφάνιση του αντικειμένου, αλλά αφαιρεί όλες τις ειδικές δυνατότητες του τύπου του (π.χ. δεν μπορείτε να στρογγυλέψετε τις γωνίες του ορθογωνίου ή να επεξεργαστείτε το κείμενο πια). Αντίθετα τώρα μπορείτε να επεξεργαστείτε τους κόμβους του. Εδώ είναι δύο αστέρια - το αριστερό κρατά ένα σχήμα και το δεξί μετατρέπεται σε μονοπάτι. Εναλλάξτε το εργαλείο κόμβου και συγκρίνετε την επεξεργασιμότητά τους όταν επιλέγονται: + + + + + + + + + Επιπλέον, μπορείτε να μετατρέψετε σε μονοπάτι ("περίγραμμα") την πινελιά κάθε αντικειμένου. Πιο κάτω, το πρώτο αντικείμενο είναι το αρχικό μονοπάτι (χωρίς γέμισμα, μαύρη πινελιά), ενώ το δεύτερο είναι το αποτέλεσμα της εντολής Πινελιά σε μονοπάτι (μαύρο γέμισμα, χωρίς πινελιά): + + + + + Πράξεις Boole + + + + + + + Οι εντολές στο μενού μονοπάτι σας επιτρέπουν να συνδυάσετε δύο ή περισσότερα αντικείμενα χρησιμοποιώντας τις πράξεις boole: + + Αρχικά σχήματα + Ένωση (Ctrl++) + Διαφορά (Ctrl+-) + Τομή(Ctrl+*) + Αποκλεισμός(Ctrl+^) + Διαίρεση(Ctrl+/) + Αποκοπή μονοπατιού(Ctrl+Alt+/) + + + + + + + + + + + (πυθμένας μείον κορυφή) + + + + + + Οι συντομεύσεις πληκτρολογίου για αυτές τις εντολές αναφέρονται στους αριθμητικούς ανάλογους των πράξεων boole (ένωση είναι πρόσθεση, διαφορά είναι αφαίρεση, κλ.). Οι εντολές Διαφορά and αποκλεισμός μπορούν να εφαρμοστούν μόνο σε δύο επιλεγμένα αντικείμενα. Άλλες πράξεις μπορούν να επεξεργαστούν οποιοδήποτε αριθμό αντικειμένων μονομιάς. Το αποτέλεσμα πάντοτε δέχεται τη μορφοποίηση του κάτω αντικειμένου. + + + + + + + Το αποτέλεσμα της εντολής Αποκλεισμός φαίνεται παρόμοιο με Συνδυασμό (δείτε πιο πάνω), αλλά διαφέρει στο ότι ο Αποκλεισμός προσθέτει επιπλέον κόμβους, όπου τα αρχικά μονοπάτια τέμνονται. Η διαφορά μεταξύ Διαίρεσης and Κατακερματισμός μονοπατιού είναι ότι το πρώτο αποκόπτει το συνολικό κάτω αντικείμενο με το μονοπάτι του άνω αντικειμένου, ενώ το δεύτερο αποκόπτει την πινελιά του κάτω αντικειμένου και αφαιρεί κάθε γέμισμα (αυτό είναι βολικό για αποκοπή πινελιών χωρίς γέμισμα σε κομμάτια). + + + Συρρίκνωση και επέκταση + + + + + + + Το Inkscape μπορεί να επεκτείνει και να συρρικνώσει σχήματα όχι μόνο κλιμακώνοντας, αλλά επίσης με μετατόπιση του μονοπατιού ενός αντικειμένου, δηλαδή μετατοπίζοντας το κάθετα στο μονοπάτι σε κάθε σημείο. Οι αντίστοιχες εντολές καλούνται Συρρίκνωση (Ctrl+() και Επέκταση (Ctrl+)). Το εμφανιζόμενο πιο κάτω είναι το αρχικό μονοπάτι (κόκκινο) και ένας αριθμός μονοπατιών συρρίκνωσης και επέκτασης από αυτό το αρχικό: + + + + + + + + + + + + + + Οι επίπεδες εντολές Συρρίκνωση και Επέκταση παράγουν μονοπάτια (μετατρέποντας το αρχικό αντικείμενο σε μονοπάτι εάν δεν είναι ήδη μονοπάτι). Συχνά πιο βολική είναι η Δυναμική μετατόπιση (Ctrl+J), που δημιουργεί ένα αντικείμενο με συρόμενη λαβή (παρόμοια με τη λαβή σχήματος) που ελέγχει την απόσταση μετατόπισης. Επιλέξτε το αντικείμενο πιο κάτω, εναλλαγή σε εργαλείο κόμβων και σύρσιμο της λαβής του για να πάρετε μια ιδέα: + + + + + + + + Τέτοιο αντικείμενο δυναμικής μετατόπισης θυμίζει το αρχικό μονοπάτι, έτσι δεν "υποβαθμίζει", όταν αλλάζετε την απόσταση μετατόπισης ξανά και ξανά. Όταν δεν χρειάζεται να είναι ρυθμίσιμο πια, μπορείτε πάντοτε να μετατρέψετε ένα αντικείμενο μετατόπισης σε μονοπάτι. + + + + + + + Ακόμα πιο βολική είναι μια Συνδεδεμένη μετατόπιση, που είναι παρόμοια με τη δυναμική ποικιλία, αλλά είναι συνδεμένη με ένα άλλο μονοπάτι που παραμένει επεξεργάσιμο. Μπορείτε να έχετε οποιοδήποτε αριθμό συνδεμένων μετατοπίσεων για ένα πηγαίο μονοπάτι. Παρακάτω, το πηγαίο μονοπάτι είναι κόκκινο, μια συνδεμένη μετατόπιση σε αυτό έχει μαύρη πινελιά χωρίς γέμισμα και η άλλη μαύρο γέμισμα χωρίς πινελιά. + + + + + + + Επιλέξτε το κόκκινο αντικείμενο και επεξεργασθείτε το κόμβο του. Παρακολουθείστε πώς συμπεριφέρονται και οι δυο συνδεμένες μετατοπίσεις. Τώρα επιλέξτε οποιαδήποτε από τις μετατοπίσεις και σύρτε τη λαβή του για να ρυθμίσετε την ακτίνα μετατόπισης. Τελικά, σημειώστε πώς μετακινείται ή μετασχηματίζονται οι πηγαίες κινήσεις όλων των αντικειμένων μετακινήσεις που είναι συνδεμένα με αυτό και πώς μπορείτε να μετακινήσετε ή να μετασχηματίσετε τα αντικείμενα μετατόπισης ανεξάρτητα χωρίς απώλεια της σύνδεσης τους με την πηγή. + + + + + + + + Απλοποίηση + + + + + + + Η κύρια χρήση της εντολής Απλοποίηση (Ctrl+L) μειώνει τον αριθμό των κόμβων στο μονοπάτι, ενώ σχεδόν διατηρεί το σχήμα του. Αυτό μπορεί να είναι χρήσιμο για μονοπάτια που δημιουργήθηκαν με το εργαλείο μολυβιού, αφού αυτό το εργαλείο μερικές φορές δημιουργεί περισσότερους κόμβους από τους αναγκαίους. Πιο κάτω, το αριστερό σχήμα είναι όπως δημιουργήθηκε με το εργαλείο ελεύθερου χεριού και το δεξί είναι ένα αντίγραφο που απλοποιήθηκε. Το αρχικό μονοπάτι έχει 28 κόμβους, ενώ το απλοποιημένο έχει 17 (που σημαίνει πολύ πιο εύκολη δουλειά με το εργαλείο κόμβων) και είναι πιο ομαλό. + + + + + + + + + Το ποσό της απλοποίησης (αποκαλούμενο κατώφλι) εξαρτάται από το μέγεθος της επιλογής. Συνεπώς, εάν επιλέξετε ένα μονοπάτι μαζί με μερικά μεγαλύτερα αντικείμενα, θα απλοποιηθεί πιο επιθετικά παρά εάν επιλέξετε αυτό το μονοπάτι μόνο του. Επιπλέον, η εντολή Απλοποίηση είναι επιταχυνόμενη. Αυτό σημαίνει ότι εάν πατήσετε Ctrl+L πολλές φορές σε γρήγορη διαδοχή (έτσι ώστε οι κλήσεις να είναι σε 0,5 δευτερόλεπτα μεταξύ τους), το κατώφλι αυξάνεται για κάθε κλήση. (Εάν κάνετε μια άλλη απλοποίηση μετά από διακοπή, το κατώφλι είναι πίσω στην αρχική του τιμή.) Κάνοντας χρήση της επιτάχυνσης, είναι εύκολο να εφαρμόσετε το ακριβές ποσό απλοποίησης που χρειαζόσαστε για κάθε περίπτωση. + + + + + + + Πέρα από την εξομάλυνση των πινελιών ελεύθερου χεριού, η Απλοποίηση μπορεί να χρησιμοποιηθεί για ποικίλα δημιουργικά εφέ. Συχνά, ένα σχήμα που είναι ανελαστικό και γεωμετρικό επωφελείται από κάποιο ποσό απλοποίησης που δημιουργεί ωραίες γενικεύσεις όπως στη ζωή της αρχικής μορφής - αναμιγνύοντας απότομες γωνίες και εισάγοντας πολύ φυσικές παραμορφώσεις, μερικές φορές με στιλ και μερικές φορές ολότελα αστείες. Να ένα παράδειγμα σχήματος εικόνας που φαίνεται πολύ πιο ωραίο μετά από απλοποίηση: + + Αρχικό + Ελαφριά απλοποίηση + Έντονη απλοποίηση + + + + + Δημιουργία κειμένου + + + + + + + Το Inkscape μπορεί να δημιουργήσει μεγάλα και σύνθετα κείμενα. Όμως, είναι επίσης βολικό για δημιουργία μικρών αντικειμένων κειμένου όπως κεφαλίδες, λάβαρα, λογότυπα, ετικέτες διαγραμμάτων και λεζάντες κλ. Αυτή η ενότητα είναι μια πολύ βασική εισαγωγή στις δυνατότητες κειμένου του Inkscape. + + + + + + + Η δημιουργία ενός αντικειμένου κειμένου είναι τόσο απλή όπως η εναλλαγή στο εργαλείο κειμένου (F8), πατήστε κάπου στο έγγραφο και τυπώστε το κείμενο σας. Για να αλλάξετε οικογένεια γραμματοσειράς, μορφοποίηση, μέγεθος και ευθυγράμμιση, ανοίξτε το διάλογο κειμένου και γραμματοσειράς (Shift+Ctrl+T). Αυτός ο διάλογος έχει επίσης μια καρτέλα εισόδου κειμένου, όπου μπορείτε να επεξεργαστήτε το επιλεγμένο αντικείμενο κειμένου - σε μερικές περιπτώσεις ίσως να είναι πιο βολικό παρά να το επεξεργαστήτε στον καμβά (ειδικά, αυτή η καρτέλα υποστηρίζει τον ορθογραφικό έλεγχο καθώς πληκτρολογείτε). + + + + + + + Όπως άλλα εργαλεία, το εργαλείο κειμένου μπορεί να επιλέξει αντικείμενα του τύπου του - αντικείμενα κειμένου - έτσι μπορείτε να πατήσετε για επιλογή και τοποθέτηση του δρομέα σε οποιοδήποτε υπάρχον αντικείμενο κειμένου (όπως αυτή η παράγραφος). + + + + + + + Μια από τις πιο συνηθισμένες λειτουργίες στο σχεδιασμό κειμένου είναι η ρύθμιση διάκενου μεταξύ γραμμάτων και γραμμών. Όπως πάντοτε, το Inkscape παρέχει συντομεύσεις πληκτρολογίου για αυτό. Όταν επεξεργαζόσαστε κείμενο, τα πλήκτρα Alt+< και Alt+> αλλάζουν το διάκενο γραμμάτων στην τρέχουσα γραμμή ενός αντικειμένου κειμένου, έτσι ώστε το συνολικό μήκος της γραμμής να αλλάζει κατά ένα εικονοστοιχείο στην τρέχουσα εστίαση (συγκρίνετε με το εργαλείο επιλογέα, όπου τα ίδια πλήκτρα κάνουν κλιμάκωση αντικειμένου του μεγέθους εικονοστοιχείου). Ως κανόνας, εάν το μέγεθος της γραμματοσειράς στο αντικείμενο κειμένου είναι μεγαλύτερο από το προεπιλεγμένο, είναι πιθανή η ωφέλεια από τη συμπίεση των γραμμάτων πιο κοντά από το προεπιλεγμένο. Ιδού ένα παράδειγμα: + + Αρχικό + Μείωση διάκενου γραμμάτων + Έμπνευση + Έμπνευση + + + + + + Η πιο σφικτή παραλλαγή δείχνει λίγο καλύτερα ως κεφαλίδα, αλλά δεν είναι ακόμα τέλεια: οι αποστάσεις μεταξύ των γραμμάτων δεν είναι ομοιόμορφες, για παράδειγμα "a" και "t" είναι υπερβολικά μακριά, ενώ "t" και "i" είναι πολύ κοντά. Ο αριθμός τέτοιων κακών πυκνώσεων (ειδικά ορατών σε μεγάλα μεγέθη γραμματοσειρών) είναι μεγαλύτερος σε χαμηλής ποιότητας γραμματοσειρές παρά σε υψηλής ποιότητας. Όμως, σε κάθε αλφαριθμητικό και σε κάθε γραμματοσειρά θα βρείτε προφανώς ζεύγη γραμμάτων που επωφελούνται από ρυθμίσεις πύκνωσης. + + + + + + + Το Inkscape κάνει αυτές τις ρυθμίσεις πραγματικά εύκολες. Απλά μετακινήστε το δρομέα επεξεργασίας κειμένου μεταξύ των προβληματικών χαρακτήρων και χρησιμοποιήστε Alt+βέλη για μετακίνηση των γραμμάτων δεξιά από το δρομέα. Εδώ είναι η ίδια επικεφαλίδα ξανά, αυτή τη φορά με χειροκίνητες ρυθμίσεις για οπτικά ομοιόμορφη τοποθέτηση γραμμάτων: + + Μείωση διάκενου γραμμάτων, μερικά ζευγάρια γραμμάτων πυκνώθηκαν χειροκίνητα + Έμπνευση + + + + + + Πέρα από τη μετακίνηση γραμμάτων οριζόντια με Alt+αριστερό βέλος ή Alt+δεξί βέλος, μπορείτε επίσης να τα μετακινήσετε κάθετα χρησιμοποιώντας Alt+επάνω βέλος ή Alt+κάτω βέλος: + + Έμπνευση + + + + + + Φυσικά θα μπορούσατε απλά να μετατρέψετε το κείμενο σας σε μονοπάτι (Shift+Ctrl+C) και να μετακινήσετε τα γράμματα ως κανονικά αντικείμενα μονοπατιού. Όμως, είναι πολύ πιο βολικό να κρατήσετε το κείμενο ως κείμενο - παραμένει επεξεργάσιμο, μπορείτε να δοκιμάσετε διαφορετικές γραμματοσειρές χωρίς αφαίρεση πυκνώσεων και διακένων και παίρνει πολύ λιγότερο χώρο στο αποθηκευμένο αρχείο. Το μόνο μειονέκτημα της προσέγγισης "κειμένου ως κειμένου" είναι ότι χρειάζεται να έχετε την αρχική γραμματοσειρά εγκαταστημένη σε οποιοδήποτε σύστημα θα θέλατε να ανοίξετε αυτό το έγγραφο SVG. + + + + + + + Παρόμοια με το διάκενο γραμμάτων, μπορείτε επίσης να ρυθμίσετε διάκενο γραμμών σε αντικείμενα κειμένου πολλαπλών γραμμών. Δοκιμάστε τα πλήκτρα Ctrl+Alt+< και Ctrl+Alt+> σε οποιαδήποτε παράγραφο σε αυτό το μάθημα για να τα τοποθετήσετε μέσα ή έξω, έτσι ώστε το συνολικό ύψος του αντικειμένου κειμένου να αλλάζει κατά 1 εικονοστοιχείο στην τρέχουσα εστίαση. Όπως στο επιλογέα, πατώντας Shift με οποιαδήποτε συντόμευση διακένου ή πύκνωσης παράγεται 10 φορές μεγαλύτερο αποτέλεσμα από ότι χωρίς Shift. + + + Επεξεργαστής XML + + + + + + + Το πιο δυνατό εργαλείο του Inkscape είναι ο επεξεργαστής XML (Shift+Ctrl+X). Εμφανίζει το συνολικό δένδρο XML του εγγράφου, αντανακλώντας πάντοτε την τρέχουσα κατάσταση του. Μπορείτε να επεξεργαστείτε το σχέδιο σας και να παρακολουθήσετε τις αντίστοιχες αλλαγές στο δένδρο XML. Επιπλέον, μπορείτε να επεξεργαστείτε οποιοδήποτε κείμενο, στοιχείο ή γνωρίσματα κόμβων στον επεξεργαστή XML και να δείτε το αποτέλεσμα στον καμβά σας. Αυτό είναι το άριστο φανταστικό εργαλείο για διαδραστική μάθηση του SVG και σας επιτρέπει να κάνετε κόλπα που θα ήταν αδύνατα με κανονικά εργαλεία επεξεργασίας. + + + Συμπέρασμα + + + + + + + Αυτό το μάθημα δείχνει μόνο ένα μικρό μέρος των δυνατοτήτων του Inkscape. Ελπίζουμε να το απολαύσετε. Μην φοβόσαστε να πειραματιστείτε και να μοιραστείτε τις δημιουργίες σας. Παρακαλώ επισκεφτείτε www.inkscape.org + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Use Ctrl+up arrow to scroll + + + + diff --git a/share/tutorials/tutorial-calligraphy.el.svg b/share/tutorials/tutorial-calligraphy.el.svg new file mode 100644 index 000000000..587b13df6 --- /dev/null +++ b/share/tutorials/tutorial-calligraphy.el.svg @@ -0,0 +1,815 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + Use Ctrl+down arrow to scroll + + + + ::ΚΑΛΛΙΓΡΑΦΊΑ + +bulia byak, buliabyak@users.sf.net and josh andler, scislac@users.sf.net + + + + + + Ένα από τα μεγάλα διαθέσιμα εργαλεία που είναι διαθέσιμα στο Inkscape είναι το εργαλείο καλλιγραφίας. Αυτό το μάθημα θα σας βοηθήσει να εξοικειωθείτε με τη χρήση του εργαλείου, καθώς και να σας επιδείξει μερικές βασικές τεχνικές της τέχνης της καλλιγραφίας. + + + + + + + Χρησιμοποιήστε Ctrl+βέλη, τροχός ποντικιού, ή σύρσιμο μεσαίου πλήκτρου για να κυλίσετε τη σελίδα προς τα κάτω. Για τα βασικά δημιουργία αντικειμένου, επιλογή και μετασχηματισμός, δείτε το βασικό μάθημα στο Βοήθεια > Μαθήματα. + + + Ιστορία και μορφοποιήσεις + + + + + + + Πηγαίνοντας στον ορισμό του λεξικού, καλλιγραφία σημαίνει "ωραία γραφή" ή "σωστή ή κομψή τέχνη γραφής". Ουσιαστικά, καλλιγραφία είναι η τέχνη δημιουργίας ωραίων ή κομψών χειρόγραφων. Μπορεί να ακούγεται εκφοβιστικό, αλλά με λίγη εξάσκηση, οποιοσδήποτε μπορεί να γίνει κύριος των βασικών αυτής της τέχνης. + + + + + + + Οι πρώτες μορφές της καλλιγραφίας χρονολογούνται από τις ζωγραφιές του ανθρώπου των σπηλαίων. Μέχρι το 1440 μ.Χ., πριν την τυπογραφία, η καλλιγραφία ήταν ο τρόπος που γινόντουσαν βιβλία και άλλες εκδόσεις. Ένας αντιγραφέας έπρεπε να γράψει με το χέρι κάθε αντίγραφο καθενός βιβλίου ή έκδοσης. Η χειρογραφή γινόταν με φτερό και μελάνι σε υλικά, όπως περγαμηνή. Οι μορφοποιήσεις των γραμμάτων που χρησιμοποιήθηκαν κατά το πέρασμα των αιώνων εμπεριέχουν Rustic, Carolingian, Blackletter, κλ. Ίσως η πιο συνηθισμένη τοποθεσία, όπου ο μέσος άνθρωπος θα συναντήσει καλλιγραφία σήμερα είναι στις προσκλήσεις γάμων. + + + + + + + Υπάρχουν τρεις κύριες μορφοποιήσεις καλλιγραφίας: + + + + + + + + Δυτική ή Ρωμαϊκή + + + + + + + + Αραβική + + + + + + + + Κινέζικη ή Ανατολική + + + + + + + Αυτό το μάθημα εστιάζει κυρίως στη δυτική καλλιγραφία, καθώς οι δύο άλλες μορφοποιήσεις τείνουν να χρησιμοποιήσουν ένα πινέλο (αντί για πένα με μύτη), που δεν είναι ο τρέχων τρόπος λειτουργίας του εργαλείου καλλιγραφίας. + + + + + + + Ένα μεγάλο πλεονέκτημα που έχουμε συγκριτικά με τους αντιγραφείς του παρελθόντος είναι η εντολή Αναίρεση: Εάν κάνετε ένα λάθος, η συνολική σελίδα δεν καταστρέφεται. Το εργαλείο καλλιγραφίας του Inkscape ενεργοποιεί επίσης μερικές τεχνικές που θα ήταν δυνατές με μια παραδοσιακή πένα και μελάνι. + + + Υλικό + + + + + + + Θα πάρετε τα άριστα αποτελέσματα, εάν χρησιμοποιήσετε μια πινακίδα και πένα (π.χ. Wacom). Λόγω της ευλυγισίας του εργαλείου μας, ακόμα και αυτοί με μόνο ένα ποντίκι μπορούν να κάνουν κάποια αρκετά περίπλοκη καλλιγραφία, αν και θα υπάρχει κάποια δυσκολία στην παραγωγή γρήγορων καμπυλών πινελιών. + + + + + + + Το Inkscape μπορεί να χρησιμοποιήσει την ευαισθησία πίεσης και την ευαισθησία κλίσης μιας πένας πινακίδας που υποστηρίζει αυτά τα χαρακτηριστικά. Οι λειτουργίες ευαισθησίας απενεργοποιούνται από επιλογή, επειδή απαιτούν διαμόρφωση. Επίσης, να θυμόσαστε ότι η καλλιγραφία με πένα ή πένα με μύτη δεν είναι πολύ ευαίσθητη στην πίεση, αντίθετα με το πινέλο. + + + + + + + Εάν έχετε μια πινακίδα και θα θέλατε να χρησιμοποιήσετε τα χαρακτηριστικά ευαισθησίας, θα χρειασθείτε να διαμορφώσετε την συσκευή σας. Αυτή η διαμόρφωση θα χρειασθεί να εκτελεσθεί μόνο μια φορά και οι ρυθμίσεις θα αποθηκευτούν. Για να ενεργοποιήσετε αυτήν την υποστήριξη, πρέπει η πινακίδα να είναι συνδεμένη πριν την εκκίνηση του inkscape και έπειτα να συνεχίσετε με το άνοιγμα του διαλόγου Συσκευές εισόδου... μέσα από το μενού Αρχείο. Με αυτό το διάλογο ανοικτό, μπορείτε να διαλέξετε την προτιμώμενη συσκευή και ρυθμίσεις για την πένα της πινακίδας σας. Τέλος, μετά την επιλογή αυτών των ρυθμίσεων, μετάβαση στο εργαλείο καλλιγραφίας και εναλλαγή των κουμπιών γραμμής εργαλείων για πίεση και κλίση. Από δω και πέρα, το Inkscape θα θυμάται αυτές τις ρυθμίσεις στην εκκίνηση. + + + + + + + Η πένα καλλιγραφίας του Inkscape μπορεί να είναι ευαίσθητη στην ταχύτητα της πινελιάς (δείτε "λέπτυνση" πιο κάτω), έτσι εάν χρησιμοποιείτε ποντίκι, θα θέλετε προφανώς να μηδενίσετε αυτήν την παράμετρο. + + + Επιλογές εργαλείου καλλιγραφίας. + + + + + + + Μετάβαση στο εργαλείο καλλιγραφίας πιέζοντας Ctrl+F6, ή το πλήκτρο C, ή πατώντας στο κουπί της γραμμής εργαλείων. Στην ανώτερη γραμμή εργαλείων, θα σημειώσετε ότι υπάρχουν 8 επιλογές: πλάτος & λέπτυνση; γωνία & Σταθεροποίηση; κεφαλαία; τρέμουλο, Ανατάραξη & μάζα. Υπάρχουν επίσης δύο κουμπιά για εναλλαγή ευαισθησίας πίεσης και κλίσης πινακίδας ενεργό και ανενεργό (για σχεδιαστικές πινακίδες). + + + Πλάτος & λέπτυνση + + + + + + + Αυτό το ζευγάρι επιλογών ελέγχουν το πλάτος της πένας σας. Το πλάτος μπορεί να ποικίλει από 1 έως 100 και (από προεπιλογή) μετριέται σε μονάδες σχετικές με το μέγεθος του παραθύρου επεξεργασίας σας, αλλά ανεξάρτητες από την εστίαση. Αυτό είναι λογικό, επειδή η φυσική "μονάδα μέτρησης" στην καλλιγραφία είναι η περιοχή της κίνησης του χεριού σας και συνεπώς είναι κατάλληλη να έχει το πλάτος της μύτης της πένας σας με σταθερό λόγο συγκριτικά με το μέγεθος της "περιοχής σχεδίασης" και όχι σε κάποιες πραγματικές μονάδες που θα το κάναν να εξαρτάται από την εστίαση. Αυτή η συμπεριφορά είναι όμως δυνητική, έτσι μπορεί να αλλαχθεί για αυτούς που προτιμούν απόλυτες μονάδες ανεξάρτητα από την εστίαση. Για μετάβαση σε αυτήν την κατάσταση, χρησιμοποιήστε το πλαίσιο ελέγχου στη σελίδα προτιμήσεων του εργαλείου (μπορείτε να το ανοίξετε διπλοπατώντας το κουμπί εργαλείου). + + + + + + + Αφού το πλάτος της πένας αλλάζει συχνά, μπορείτε να το ρυθμίσετε χωρίς να πάτε στη γραμμή εργαλείων, χρησιμοποιώντας τα πλήκτρα βελών αριστερό και δεξί ή με μια πινακίδα που υποστηρίζει τη λειτουργία ευαισθησίας πίεσης. Το άριστο με αυτά τα πλήκτρα είναι ότι δουλεύουν ενώ σχεδιάζετε, έτσι μπορείτε να αλλάξετε το πλάτος της πένας σας βαθμιαία στο μέσο της πινελιάς: + + πλάτος=1, αύξηση... φτάνοντας 47, μείωση... επιστροφή στο 0 + + + + + + + Το πλάτος της πένας μπορεί επίσης να εξαρτάται από την ταχύτητα, όπως ελέγχεται από την παράμετρο λέπτυνσης. Αυτή η παράμετρος μπορεί να πάρει τιμές από -100 έως 100. Μηδέν σημαίνει ότι το πλάτος είναι ανεξάρτητο από την ταχύτητα, θετικές τιμές κάνουν τις πιο γρήγορες πινελιές πιο λεπτές, αρνητικές τιμές κάνουν τις πιο γρήγορες πινελιές πιο πλατιές. Η προεπιλογή 0,1 σημαίνει μέτρια λέπτυνση των γρήγορων πινελιών. Ιδού μερικά παραδείγματα, όλα σχεδιασμένα με πλάτος=20 και γωνία=90: + + λέπτυνση = 0 (ομοιόμορφο πλάτος) + λέπτυνση = 10 + λέπτυνση = 40 + λέπτυνση = -20 + λέπτυνση = -60 + + + + + + + + + + + + + + + + + + + + + + + + + + Για αστείο, ορίστε το πλάτος και την λέπτυνση στο 100 (μέγιστο) και σχεδιάστε με τρελές κινήσεις για να πάρετε παράξενα φυσιοκρατικά σχήματα μορφής νευρώνα: + + + + + + + + + Γωνία & σταθεροποίηση + + + + + + + Μετά το πλάτος, η γωνία είναι η πιο σημαντική παράμετρος καλλιγραφίας. Είναι η γωνία της πένας σας σε μοίρες, αλλάζοντας από 0 (οριζόντια) μέχρι 90 (κάθετα αριστερόστροφα) ή μέχρι -90 (κάθετα δεξιόστροφα). Σημειώστε ότι εάν ενεργοποιήσετε την ευαισθησία κλίσης για μια πινακίδα, η παράμετρος της γωνίας γίνεται αχνή και η γωνία καθορίζεται από την κλίση της πένας. + + + + + + + + + + + + + γωνία = 90 μοίρες + γωνία = 30 (προεπιλογή) + γωνία = 0 + γωνία = -90 μοίρες + + + + + + + + + + + + + + + + + Κάθε μορφοποίηση παραδοσιακής καλλιγραφίας έχει τη δικιά της δεδομένη γωνία πένας. Π.χ., η γραφή Uncial χρησιμοποιεί γωνία 25 μοιρών. Πιο σύνθετες γραφές και πιο έμπειροι καλλιγράφοι αλλάζουν συχνά τη γωνία ενώ σχεδιάζουν και το Inkscape το κάνει εφικτό πιέζοντας τα πλήκτρα βελών επάνω και κάτω ή με πινακίδα που υποστηρίζει το χαρακτηριστικό της ευαισθησίας κλίσης. Για το ξεκίνημα καλλιγραφικών μαθημάτων, όμως, η διατήρηση της γωνίας σταθερής θα δουλέψει άριστα. Ιδού παραδείγματα πινελιών που σχεδιάστηκαν με διαφορετικές γωνίες (σταθεροποίηση = 100): + + γωνία = 30 + γωνία = 60 + γωνία = 90 + γωνία = 0 + γωνία = 15 + γωνία = -45 + + + + + + + + + + + + Όπως μπορείτε να δείτε, η πινελιά είναι πολύ λεπτή όταν σχεδιάζεται παράλληλα προς τη γωνία της και πολύ πλατιά όταν σχεδιάζεται κάθετα. Θετικές γωνίες είναι οι πιο φυσικές και παραδοσιακές για δεξιόγραφη καλλιγραφία. + + + + + + + Η στάθμη της αντίθεσης μεταξύ της πιο λεπτής και της πιο παχιάς ελέγχονται από την παράμετρο σταθεροποίηση. Η τιμή 100 σημαίνει ότι η γωνία είναι πάντοτε σταθερή, όπως ορίστηκε στο πεδίο γωνίας. Μείωση της σταθεροποίησης επιτρέπει στην πένα να γυρίσει λίγο προς την κατεύθυνση της πινελιάς. Με σταθεροποίηση=0, η πένα περιστρέφεται ελεύθερα για να είναι πάντοτε κάθετη στην πινελιά και η γωνία δεν επιδρά πλέον: + + + + + + + γωνία = 30Σταθεροποίηση = 100 + γωνία = 30Σταθεροποίηση = 80 + γωνία = 30Σταθεροποίηση = 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Μιλώντας τυπογραφικά, η μέγιστη σταθεροποίηση και συνεπώς μέγιστη αντίθεση πλάτους πινελιάς (πάνω αριστερά) είναι τα χαρακτηριστικά των παλιών οικογενειών χαρακτήρων με πατούρα, όπως Times ή Bodoni (επειδή αυτές οι οικογένειες χαρακτήρων ήταν ιστορικά μια απομίμηση των καλλιγραφιών σταθερής πένας). Από την άλλη πλευρά, μηδενική σταθεροποίηση και μηδενική αντίθεση πλάτους (πάνω δεξιά), προτείνουν σύγχρονες οικογένειες χαρακτήρων χωρίς πατούρα όπως η Helvetica. + + + Τρέμουλο + + + + + + + Το τρέμουλο σκοπεύει να δώσει μια πιο φυσική εμφάνιση στις καλλιγραφικές πινελιές. Το τρέμουλο ρυθμίζεται στη γραμμή ελέγχων με τιμές από 0,0 μέχρι 1,0. Θα επηρεάσει τις πινελιές σας παράγοντας οτιδήποτε από ελαφριά ανωμαλία μέχρι άγριες μουντζαλιές και κηλίδες. Αυτό επεκτείνει σημαντικά τη δημιουργική εμβέλεια του εργαλείου. + + + αργά + μεσαία + γρήγορα + + + + + + + + + + + τρέμουλο = 0 + τρέμουλο = 10 + τρέμουλο = 30 + τρέμουλο = 50 + τρέμουλο = 70 + τρέμουλο = 90 + τρέμουλο = 20 + τρέμουλο = 40 + τρέμουλο = 60 + τρέμουλο = 80 + τρέμουλο = 100 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ανατάραξη & μάζα + + + + + + + Αντίθετα με το πλάτος και τη γωνία, αυτές οι δύο τελευταίες παράμετροι ορίζουν πώς το εργαλείο "αισθάνεται" περισσότερο παρά επηρεάζουν την οπτική του έξοδο. Γι' αυτό δεν θα υπάρχουν εικόνες σε αυτήν την ενότητα. Απλά δοκιμάστε τες οι ίδιοι για να πάρετε μια καλύτερη ιδέα. + + + + + + + ανατάραξη είναι η αντίσταση του χαρτιού στη μετακίνηση της πένας. Η προεπιλογή είναι στο ελάχιστο (0) και αύξηση αυτής της παραμέτρου κάνει το χαρτί "ολισθηρό": εάν η μάζα είναι μεγάλη, η πένα τείνει να φεύγει στις απότομες στροφές. Εάν η μάζα είναι μηδέν, υψηλή ανατάραξη κάνει την πένα να κουνιέται πολύ. + + + + + + + Στη φυσική, η μάζα προκαλεί αδράνεια. Όσο πιο μεγάλη η μάζα του εργαλείου καλλιγραφίας του Inkscape, τόσο περισσότερο καθυστερεί πίσω από το δείκτη του ποντικιού και τόσο περισσότερο εξομαλύνει απότομες στροφές και γρήγορα τραβήγματα στην πινελιά σου. Από προεπιλογή αυτή η τιμή είναι αρκετά μικρή (2), έτσι ώστε το εργαλείο να είναι γρήγορο και με ανταπόκριση, αλλά μπορείτε να αυξήσετε τη μάζα για να πάρετε πιο αργή και πιο μαλακή πένα. + + + Παραδείγματα καλλιγραφίας + + + + + + + Τώρα που ξέρετε τις βασικές δυνατότητες του εργαλείου, μπορείτε να προσπαθήσετε να παράξετε αληθινή καλλιγραφία. Εάν είσθε νέος σε αυτήν την τέχνη, πάρτε ένα καλό βιβλίο καλλιγραφίας και μελετήστε το με το Inkscape. Αυτή η ενότητα θα σας δείξει μόνο μερικά απλά παραδείγματα. + + + + + + + Πρώτα απ' όλα, για να κάνετε γράμματα, χρειαζόσαστε να δημιουργήσετε ένα ζευγάρι χάρακες για να σας οδηγήσουν. Εάν πρόκειται να γράψετε σε πλάγια ή με ενωμένα γράμματα γραφή, προσθέστε μερικούς πλάγιους οδηγούς κατά μήκος των δύο χαράκων επίσης, π.χ.: + + + + + + + + + + + + + + + Έπειτα εστιάστε έτσι ώστε το ύψος μεταξύ των χαράκων να αντιστοιχεί στην πιο φυσική περιοχή κίνησης του χεριού, ρυθμίστε πλάτος και γωνία, και φύγαμε! + + + + + + + Προφανώς το πρώτο πράγμα που θα πρέπει να κάνετε ως αρχάριος καλλιγράφος είναι να εξασκήσετε τα βασικά στοιχεία των γραμμάτων — κάθετες και οριζόντιες στελέχη, στρογγυλές πινελιές, πλάγια στελέχη. Ιδού μερικά στοιχεία γραμμάτων για τη γραφή Uncial: + + + + + + + + + + + + + + + + + + + + + + + + Πολλές χρήσιμες συμβουλές: + + + + + + + + Εάν το χέρι σας είναι άνετο στην πινακίδα, μην το μετακινήσετε. Αντίθετα, κυλίστε τον καμβά (πλήκτρα Ctrl+βέλος) με το αριστερό σας χέρι μετά το τέλος κάθε γράμματος. + + + + + + + + Εάν η τελευταία πινελιά ήταν κακή, απλά αναιρέστε την (Ctrl+Z). Όμως, εάν το σχήμα της είναι καλό, αλλά η θέση ή μέγεθος είναι ελαφρά εκτός, είναι καλύτερο να μεταβείτε στο επιλογέα προσωρινά (διάστημα) και ώθηση/κλιμάκωση/περιστροφή της όσο χρειάζεται (χρησιμοποιώντας ποντίκι ή πλήκτρα), έπειτα πιέστε διάστημα ξανά για να επιστρέψετε στο εργαλείο καλλιτεχνίας. + + + + + + + + Έχοντας γράψει μια λέξη, μεταβείτε στον επιλογέα πάλι για να ρυθμίσετε την ομοιομορφία του στελέχους και το διάκενο των γραμμάτων. Μην το παρακάνετε αυτό, όμως. Η καλή καλλιγραφία πρέπει να διατηρεί κάποια ακανόνιστη όψη χειρογραφής. Αντισταθείτε στον πειρασμό να αντιγράψετε ακριβώς γράμματα και στοιχεία γραμμάτων. Κάθε πινελιά πρέπει να είναι αυθεντική. + + + + + + + Και να μερικά πλήρη παραδείγματα σχεδίασης γραμμάτων: + + + + + + + + + + Unicial γραφή + Γραφή Καρολιδών (Carolingian) + Γοτθική γραφή + Ενδιάμεση (Bâtarde) γραφή + + + Διακοσμητική ιταλική γραφή + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Συμπέρασμα + + + + + + + Η καλλιγραφία δεν είναι μόνο διασκέδαση. Είναι βαθιά πνευματική τέχνη που μπορεί να μετασχηματίσει την στάση σας σε κάθε τι που κάνετε και βλέπετε. Το εργαλείο καλλιγραφίας του Inkscape μπορεί να χρησιμεύσει ως απλή εισαγωγή. Παρόλα αυτά είναι πολύ όμορφο να παίξετε με αυτό και ίσως χρήσιμο στην αληθινή σχεδίαση. Απολαύστε το! + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Use Ctrl+up arrow to scroll + + + + diff --git a/share/tutorials/tutorial-elements.el.svg b/share/tutorials/tutorial-elements.el.svg new file mode 100644 index 000000000..847909612 --- /dev/null +++ b/share/tutorials/tutorial-elements.el.svg @@ -0,0 +1,692 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + Use Ctrl+down arrow to scroll + + + + ::ΣΤΟΙΧΕΊΑ + + + + + + + Αυτό το μάθημα θα δείξει τα στοιχεία και τις αρχές σχεδίασης που συνήθως διδάσκονται σε αρχάριους σπουδαστές τέχνης για να καταλάβουν ποικίλες ιδιότητες που χρησιμοποιούνται στην τέχνη. Αυτή δεν είναι μια πλήρης λίστα, έτσι παρακαλώ προσθέστε, αφαιρέστε και συνδυάστε για να κάνετε αυτό το μάθημα πιο κατανοητό. + + + + + Στοιχεία + Αρχές + Χρώμα + Γραμμή + Σχήμα + Χώρος + Υφή + Τιμή + Μέγεθος + Ισορροπία + Αντίθεση + Έμφαση + Αναλογία + Μοτίβο + Διαβάθμιση + Σύνθεση + Επισκόπηση + + Στοιχεία σχεδίασης + + + + + + + Τα πιο κάτω στοιχεία είναι οι κατασκευαστικές ομάδες σχεδίασης. + + + Γραμμή + + + + + + + Μια γραμμή ορίζεται ως σημείο με μήκος και κατεύθυνση, δημιουργημένο από ένα σημείο που μετακινείται κατά μήκος της επιφάνειας. Μια γραμμή μπορεί να ποικίλει σε μήκος, πλάτος, κατεύθυνση, καμπυλότητα και χρώμα. Η γραμμή μπορεί να είναι δισδιάστατη (μια γραμμή μολυβιού σε χαρτί), ή υπονοούμενη τρισδιάστατη. + + + + + + + + + + + + + + + Σχήμα + + + + + + + Μια επίπεδη μορφή δημιουργείται όταν ενεργές ή υπονοούμενες γραμμές συναντώνται και περικλείουν ένα χώρο. Μια αλλαγή στο χρώμα ή την απόχρωση μπορεί να ορίσει ένα σχήμα. Τα σχήματα μπορούν να διαιρεθούν σε πολλούς τύπους: γεωμετρικά (τετράγωνα, τρίγωνα, κύκλους) και οργανικά (ανώμαλα στο περίγραμμα). + + + + + + + + + Μέγεθος + + + + + + + Αυτό αναφέρεται στις ποικιλίες στις αναλογίες των αντικειμένων, γραμμών ή σχημάτων. Υπάρχει μια ποικιλία μεγεθών στα αντικείμενα είτε πραγματικά είτε φανταστικά. + + + ΜΕΓΑΛΟ + μικρό + + Χώρος + + + + + + + Χώρος είναι η κενή ή ανοικτή περιοχή μεταξύ, γύρω, πάνω από, κάτω από ή μέσα στα αντικείμενα. Σχήματα και μορφές δημιουργούνται από το χώρο γύρω και μέσα τους. Ο χώρος αποκαλείται συχνά τρισδιάστατος ή δισδιάστατος. Ο θετικός χώρος γεμίζεται από ένα σχήμα ή μορφή. Ο αρνητικός χώρος περιβάλλει ένα σχήμα ή μορφή. + + + + + + + Χρώμα + + + + + + + Χρώμα είναι ο αντιληπτικός χαρακτήρας μιας επιφάνειας σύμφωνα με το μήκος κύματος του ανακλώμενου φωτός από αυτό. Το χρώμα έχει τρεις διαστάσεις: ΑΠΟΧΡΩΣΗ (άλλη μια λέξη για χρώμα, που δείχνεται από το όνομα του όπως κόκκινο ή κίτρινο), ΤΙΜΗ (η φωτεινότητα του ή σκοτεινότητα), ΕΝΤΑΣΗ (η λαμπρότητά του ή μουντάδα του). + + + + + + + + + + + + + + + Υφή + + + + + + + Υφή είναι ο τρόπος επαφής μια επιφάνειας (τρέχουσα υφή) ή πώς μπορεί να φαίνεται (υπονοούμενη υφή). Οι υφές περιγράφονται με λέξεις όπως σκληρή, μεταξένια ή γεμάτος βότσαλα. + + + + + + + + + + + + + + + + + + Τιμή + + + + + + + Τιμή είναι πόσο σκοτεινό ή φωτεινό δείχνει κάτι. Πετυχαίνουμε αλλαγές στην τιμή σε χρώμα προσθέτοντας μαύρο ή άσπρο στο χρώμα. Η φωτοσκίαση χρησιμοποιεί τιμές στη σχεδίαση με δραματικές αντιθέσεις φωτός και σκότους σε μια σύνθεση. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Αρχές σχεδίασης + + + + + + + Οι αρχές χρησιμοποιούν τα στοιχεία σχεδίασης για δημιουργία μιας σύνθεσης. + + + Ισορροπία + + + + + + + Ισορροπία είναι μια αίσθηση οπτικής ισότητας στο σχήμα, μορφή, τιμή, χρώμα κλ. Η ισορροπία μπορεί να είναι συμμετρική ή ομοιόμορφα ισορροπημένη ή ασύμμετρη και ανομοιόμορφα ισορροπημένη. Αντικείμενα, τιμές, χρώματα, υφές, σχήματα, μορφές, κλ., μπορούν να χρησιμοποιηθούν στη δημιουργία ισορροπίας σε μια σύνθεση. + + + + + + + + + Αντίθεση + + + + + + + Αντίθεση είναι η παράθεση αντιτιθέμενων στοιχείων + + + + + + + Έμφαση + + + + + + + Έμφαση χρησιμοποιείται ώστε κάποια μέρη των καλλιτεχνικών εργασιών να ξεχωρίζουν και να τραβούν την προσοχή σας. Το κέντρο του ενδιαφέροντος ή σημείο εστίασης είναι ο θέση που μια δουλειά έλκει το μάτι σας πρώτα. + + + + + + + + Αναλογία + + + + + + + Η αναλογία περιγράφει το μέγεθος, τοποθεσία ή ποσότητα ενός πράγματος συγκρινόμενου με ένα άλλο. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Τυχαίο μυρμήγκι & 4x4 + Εικόνα SVG που δημιουργήθηκε από τον Andrew FitzsimonΠροσφορά της βιβλιοθήκης Open Clip Arthttp://www.openclipart.org/ + + + + + + + + + + + + + + + + + + + + + + + + Μοτίβο + + + + + + + Το μοτίβο δημιουργείται επαναλαμβάνοντας ένα στοιχείο (γραμμή, σχήμα ή χρώμα) ξανά και ξανά. + + + + + + + + + + + + + + + + Διαβάθμιση + + + + + + + Η διαβάθμιση του μεγέθους και της κατεύθυνσης παράγει γραμμική προοπτική. Η διαβάθμιση του χρώματος από ζεστό σε κρύο και τόνου από σκούρο σε ανοικτό παράγει αέρινη προοπτική. Η διαβάθμιση μπορεί να προσθέσει ενδιαφέρον και κίνηση σε ένα σχήμα. Μια διαβάθμιση από σκούρο σε ανοικτό θα προκαλέσει την κίνηση του ματιού κατά μήκος ενός σχήματος. + + + + + + + + + + + + + + + + + + + Σύνθεση + + + + + + + Ο συνδυασμός ξεχωριστών στοιχείων για το σχηματισμό ενός συνόλου. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Βιβλιογραφία + + + + + + + Αυτή είναι μερική βιβλιογραφία που χρησιμοποιήθηκε για το χτίσιμο αυτού του εγγράφου. + + + + + + + + http://sanford-artedventures.com/study/study.html + + + + + + + + + http://www.makart.com/resources/artclass/EPlist.html + + + + + + + + + http://www.princetonol.com/groups/iad/Files/elements2.htm + + + + + + + + + http://oswego.org/staff/bpeterso/web/elements_and_principles.htm + + + + + + + + + http://www.johnlovett.com/test.htm + + + + + + + + + http://digital-web.com/articles/elements_of_design/ + + + + + + + + + http://digital-web.com/articles/principles_of_design/ + + + + + + + + Special thanks to Linda Kim (http://www.redlucite.org) for helping me (http://www.rejon.org/) with this tutorial. Also, thanks to the Open Clip Art Library (http://www.openclipart.org/) and the graphics people have submitted to that project. + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Use Ctrl+up arrow to scroll + + + + diff --git a/share/tutorials/tutorial-tips.el.svg b/share/tutorials/tutorial-tips.el.svg new file mode 100644 index 000000000..916a6052d --- /dev/null +++ b/share/tutorials/tutorial-tips.el.svg @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + Use Ctrl+down arrow to scroll + + + + :: + + + + + + + Αυτό το μάθημα θα παρουσιάσει ποικίλες συμβουλές και κόλπα που οι χρήστες έμαθαν μέσα από τη χρήση του Inkscape και μερικά "κρυμμένα" χαρακτηριστικά που μπορούν να σας βοηθήσουν να επιταχύνετε τις εργασίες παραγωγής. + + + Ακτινική τοποθέτηση με κλώνους πλακιδίου + + + + + + + Είναι εύκολο να δείτε τη χρήση του διαλόγου παράθεση κλώνων για ορθογώνια πλέγματα και μοτίβα. Αλλά τι γίνεται εάν χρειάζεσθε ακτινική τοποθέτηση, όπου τα αντικείμενα μοιράζονται ένα κοινό κέντρο περιστροφής; Είναι επίσης δυνατό! + + + + + + + Εάν το ακτινικό σας μοτίβο χρειάζεται να έχει μόνο 3, 4, 6, 8 ή 12 στοιχεία, τότε μπορείτε να δοκιμάσετε τις συμμετρίες P3, P31M, P3M1, P4, P4M, P6 ή P6M. Αυτές θα δουλέψουν όμορφα για νιφάδες και τα παρόμοια. Μια πιο γενική μέθοδος, όμως, είναι η ακόλουθη. + + + + + + + Επιλέξτε τη συμμετρία P1 (απλή μετατόπιση) και έπειτα αντιστάθμιση για αυτήν την μετατόπιση πηγαίνοντας στην καρτέλα μετατόπιση και ορίζοντας ανά γραμμή/μετατόπιση Y and ανά στήλη/μετατόπιση X και τις δυο στο -100%. Τώρα όλοι οι κλώνοι θα στοιβαχθούν ακριβώς στην κορυφή της αρχικής. Αυτό που μένει να γίνει είναι να πάτε στην καρτέλα περιστροφή και να ορίσετε κάποια γωνία περιστροφής ανά στήλη, έπειτα δημιουργήστε το μοτίβο με μία γραμμή και πολλαπλές στήλες. Π.χ., ιδού ένα μοτίβο φτιαγμένο από μια οριζόντια γραμμή, με τριάντα στήλες, με κάθε στήλη περιστρεμμένη κατά 6 μοίρες: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Για να πάρετε μια πλάκα ρολογιού, χρειαζόσαστε να κόψετε ή απλά να επικαλύψετε το κεντρικό μέρος με ένα λευκό κύκλο (για πράξεις boole σε κλώνους, αποσυνδέστε τους πρώτα). + + + + + + + Πιο ενδιαφέροντα εφέ μπορούν να δημιουργηθούν χρησιμοποιώντας γραμμές και στήλες. Ιδού ένα μοτίβο με 10 στήλες και 8 γραμμές, με περιστροφή 2 μοιρών ανά γραμμή και 18 μοιρών ανά στήλη. Κάθε ομάδα γραμμών εδώ είναι μία "στήλη", έτσι οι ομάδες είναι 18 μοίρες μεταξύ τους. Μέσα σε κάθε στήλη, οι ατομικές γραμμές είναι μακριά δύο μοίρες. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Στα παραπάνω παραδείγματα, η γραμμή περιστράφηκε γύρω από το κέντρο της. Αλλά τι γίνεται εάν θέλετε το κέντρο να είναι έξω από το σχήμα σας; Απλά δημιουργήστε ένα αόρατο (χωρίς γέμισμα, χωρίς πινελιά) ορθογώνιο που θα μπορούσε να καλύψει το σχήμα σας και του οποίου το κέντρο είναι στο σημείο που χρειάζεσθε, ομαδοποιήστε το σχήμα και το ορθογώνιο μαζί και έπειτα χρησιμοποιήστε δημιουργία παρατιθέμενων κλώνων σε αυτήν την ομάδα. Έτσι μπορείτε να κάνετε όμορφες "εκρήξεις" ή "αστεροσκόνες" με τυχαία κλιμάκωση, περιστροφή και ίσως αδιαφάνεια: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Πώς να τεμαχίσετε (περιοχές εξαγωγής πολλαπλών ορθογωνίων); + + + + + + + Δημιουργήστε μια νέα στρώση και σε αυτή τη στρώση δημιουργήστε αόρατα ορθογώνια που καλύπτουν μέρη της εικόνας σας. Βεβαιωθείτε ότι το έγγραφό σας χρησιμοποιεί μονάδες px (προεπιλογή), ενεργοποιήστε πλέγμα και προσκόλληση των ορθογωνίων στο πλέγμα, έτσι ώστε το καθένα να καλύπτει ένα συνολικό αριθμό μονάδων εικονοστοιχείων. Δώστε ταυτότητες με νόημα στα ορθογώνια και εξάγετε καθένα στο αρχείο του (Αρχείο > Εξαγωγή ψηφιογραφίας (Shift+Ctrl+E)). Έπειτα τα ορθογώνια θα θυμούνται τα ονόματα αρχείων εξαγωγής τους. Μετά από αυτό, είναι πολύ εύκολο να ξαναεξάγετε μερικά από τα ορθογώνια: μετάβαση στη στοιβάδα εξαγωγής, χρησιμοποιήστε Tab για επιλογή του επιθυμητού (ή χρησιμοποιήστε εύρεση με ταυτότητα (id) και πατήστε εξαγωγή στο διάλογο. Ή μπορείτε να γράψετε ένα σενάριο κελύφους ή ομαδικό αρχείο για εξαγωγή όλων των περιοχών σας, με μια εντολή όπως: + + + + + + + inkscape -i area-id -t filename.svg + + + + + + + για κάθε εξαγόμενη περιοχή. Ο διακόπτης -t της λέει να χρησιμοποιήσει την υπόδειξη όνομα αρχείου που θυμάται, αλλιώς μπορείτε να δώσετε το όνομα αρχείου εξαγωγής με το διακόπτη -e. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το πρόγραμμα svgslice για αυτοματοποίηση εξαγωγής από τα έγγραφα Inkscape SVG, χρησιμοποιώντας είτε στρώση αποκοπής ή οδηγούς. + + + Μη γραμμικές διαβαθμίσεις + + + + + + + Η έκδοση 1.1 του SVG δεν υποστηρίζει μη γραμμικές διαβαθμίσεις (δηλαδή διαβαθμίσεις που έχουν μη γραμμικές μετατοπίσεις μεταξύ των χρωμάτων). Μπορείτε, όμως, να τις προσομοιώσετε με διαβαθμίσεις πολλαπλών φάσεων + + + + + + + Ξεκίνημα με μια απλή διαβάθμιση δύο φάσεων. Ανοίξτε τον επεξεργαστή διαβαθμίσεων (π.χ. διπλοπατώντας σε οποιαδήποτε λαβή του εργαλείου διαβάθμισης). Προσθέστε μια νέα διαβαθμισμένη φάση στο μέσο. Σύρτε την λίγο. Έπειτα προσθέστε περισσότερες φάσεις πριν και μετά τη μεσαία φάση και σύρτε τες επίσης, έτσι ώστε η διαβάθμιση να είναι ομαλή. Όσες περισσότερες φάσεις προσθέτετε, τόσο πιο ομαλή τελική διαβάθμιση μπορείτε να πάρετε. Ιδού η αρχική ασπρόμαυρη διαβάθμιση με δύο φάσεις: + + + + + + + + + + + + + + Και εδώ είναι ποικίλες "μη γραμμικές" πολυφασικές διαβαθμίσεις (εξετάστε τες στον επεξεργαστή διαβαθμίσεων): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Εκκεντρικές ακτινικές διαβαθμίσεις + + + + + + + Οι ακτινικές διαβαθμίσεις δεν πρέπει να είναι συμμετρικές. Στο εργαλείο διαβάθμισης, σύρτε την κεντρική λαβή της ελλειπτικής διαβάθμισης με Shift. Αυτό θα μετακινήσει την σχήματος x λαβή εστίασης της διαβάθμισης μακριά από το κέντρο της. Όταν δεν την χρειάζεσθε, μπορείτε να προσκολλήσετε την εστίαση πίσω σύροντας την κοντά στο κέντρο. + + + + + + + + + + + + + + + Ευθυγράμμιση στο κέντρο της σελίδας + + + + + + + Για να ευθυγραμμίσετε κάτι στο κέντρο ή την πλευρά της σελίδας, επιλέξτε το αντικείμενο ή ομάδα και έπειτα διαλέξτε Σελίδα από την λίστα Σχετικά με: στο διάλογο Ευθυγράμμιση και κατανομή (Ctrl+Shift+A). + + + Καθαρίζοντας το έγγραφο + + + + + + + Πολλές από τις μη χρησιμοποιούμενες διαβαθμίσεις, μοτίβα και σημειωτές (με πιο ακρίβεια, αυτές που επεξεργαστήκατε χειροκίνητα) παραμένουν στις αντίστοιχες παλέτες και μπορούν να ξαναχρησιμοποιηθούν για νέα αντικείμενα. Όμως, εάν θέλετε να βελτιώσετε το αντικείμενο σας, χρησιμοποιήστε την εντολή Καθαρισμός ορισμών στο μενού αρχείο. Θα αφαιρέσει κάθε διαβάθμιση, μοτίβο ή σημειωτή που δεν χρησιμοποιείται από κάτι στο έγγραφο, κάνοντας το αρχείο μικρότερο. + + + Κρυμμένα χαρακτηριστικά και ο επεξεργαστής XML + + + + + + + Ο επεξεργαστής XML (Shift+Ctrl+X) σας επιτρέπει να αλλάξετε σχεδόν κάθε όψη του εγγράφου χωρίς να χρησιμοποιήσετε έναν εξωτερικό επεξεργαστή κειμένου. Επίσης, το Inkscape συνήθως υποστηρίζει περισσότερα χαρακτηριστικά SVG από όσα είναι προσβάσιμα από το GUI. Ο επεξεργαστής XML είναι ένας τρόπος να προσπελάσετε αυτά τα χαρακτηριστικά (εάν ξέρετε SVG). + + + Αλλαγή των μονάδων μέτρησης του χάρακα + + + + + + + Στο προεπιλεγμένο πρότυπο, η μονάδα μέτρησης που χρησιμοποιείται από τους χάρακες είναι px ("μονάδα χρήστη SVG", που στο Inkscape είναι ίση με 0,8pt ή 1/90 της ίντσας). Αυτή είναι επίσης η μονάδα που χρησιμοποιείται στην εμφάνιση συντεταγμένων στην κάτω αριστερή γωνία και προεπιλεγμένη για όλα τα μενού μονάδων. (Μπορείτε να αφήσετε το ποντίκι σας πάνω από ένα χάρακα για να δείτε την συμβουλή με τις μονάδες που χρησιμοποιεί.) Για να το αλλάξετε αυτό, ανοίξτε την εντολή Ιδιότητες εγγράφου (Ctrl+Shift+D) και αλλάξτε το Προεπιλεγμένες μονάδες στην καρτέλα Σελίδα. + + + Σφράγισμα + + + + + + + Για να δημιουργήσετε πολλά αντίγραφα ενός αντικειμένου, χρησιμοποιήστε σφράγισμα. Απλά σύρτε ένα αντικείμενο (ή κλιμακώστε το ή περιστρέψτε το) και ενώ κρατάτε το πλήκτρο του ποντικιού πατημένο, πιέστε διάστημα. Αυτό αφήνει μια "σφραγίδα" του τρέχοντος σχήματος του αντικειμένου. Μπορείτε να το επαναλάβετε όσες φορές θέλετε. + + + Κόλπα εργαλείου πένας + + + + + + + Στο εργαλείο πένας (Bezier), έχετε τις παρακάτω επιλογές για να τελειώσετε την τρέχουσα γραμμή: + + + + + + + + Πατήστε Enter + + + + + + + + Διπλό κλικ με το αριστερό πλήκτρο του ποντικιού + + + + + + + + Επιλέξτε το εργαλείο πένας ξανά + + + + + + + + Επιλέξτε ένα άλλο εργαλείο + + + + + + + Σημειώστε ότι ενώ το μονοπάτι είναι ατελείωτο (δηλαδή φαίνεται πράσινο, με το τρέχον κομμάτι κόκκινο) δεν υπάρχει ακόμα ως αντικείμενο στο έγγραφο. Συνεπώς, για να το ακυρώσετε χρησιμοποιήστε είτε Esc (ακύρωση όλου του μονοπατιού) ή οπισθοδιαγραφή (αφαιρεί το τελευταίο κομμάτι του ατελείωτου μονοπατιού) αντί για Αναίρεση. + + + + + + + Για να προσθέσετε ένα νέο υπομονοπάτι σε ένα υπάρχον μονοπάτι, επιλέξτε αυτό το μονοπάτι και αρχίστε τη σχεδίαση με Shift από ένα ελεύθερο σημείο. Εάν, όμως, θέλετε απλά να συνεχίσετε ένα υπάρχον μονοπάτι, το Shift δεν είναι απαραίτητο. Απλά ξεκινήστε να σχεδιάζετε από μία από τις τελικές άγκυρες ρου επιλεγμένου μονοπατιού. + + + Εισαγωγή τιμών Unicode + + + + + + + Ενώ βρίσκεσθε στο εργαλείο κειμένου, πατώντας Ctrl+U εναλλάσσεται η κατάσταση μεταξύ Unicode και κανονικής. Στην κατάσταση Unicode, κάθε ομάδα των 4 δεκαεξαδικών ψηφίων που πληκτρολογείτε γίνεται ένας μόνο χαρακτήρας Unicode, έτσι σας επιτρέπει να εισάγετε ελεύθερα σύμβολα (εφόσον ξέρετε τα σημεία κωδικού Unicode και η γραμματοσειρά τα υποστηρίζει). Για να τελειώσετε την είσοδο Unicode, πατήστε Enter. Π.χ., Ctrl+U 2 0 1 4 Enter εισάγει μια em-dash (—). Για να αφήσετε την κατάσταση Unicode χωρίς να εισάγετε τίποτα πατήστε Esc. + + + Χρησιμοποιώντας το πλέγμα για σχεδίαση εικόνων + + + + + + + Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα εικονίδιο 24x24 εικονοστοιχείων. Δημιουργήστε έναν καμβά 24x24 px (χρησιμοποιήστε την εντολή Ιδιότητες εγγράφου) και ορίστε το πλέγμα σε 0,5 px (48x48 γραμμές πλέγματος). Τώρα, εάν ευθυγραμμίσετε τα γεμισμένα αντικείμενα σε ζυγές γραμμές πλέγματος και τα βαμμένα αντικείμενα σε μονές γραμμές πλέγματος με το πλάτος της πινελιάς σε px να είναι ζυγός αριθμός και το εξάγετε στο προεπιλεγμένο 90dpi (έτσι ώστε 1 να γίνεται 1 px ψηφιογραφίας), παίρνετε μια καθαρή ψηφιογραφική εικόνα χωρίς αχρείαστη εξομάλυνση. + + + Περιστροφή αντικειμένου + + + + + + + Ευρισκόμενοι στο εργαλείο επιλογής, κλικ σε ένα αντικείμενο για να δείτε τα κλιμακούμενα βέλη, έπειτα κλικ ξανά στο αντικείμενο για να δείτε την περιστροφή και τα βέλη μετατόπισης. Εάν τα βέλη στις γωνίες πατηθούν και συρθούν, το αντικείμενο θα περιστραφεί γύρω από το κέντρο (φαίνεται σαν σταυρός). Αν κρατήσετε πατημένο το πλήκτρο Shiftενώ κάνετε αυτό, η περιστροφή θα συμβεί γύρω από την αντίθετη γωνία. Μπορείτε επίσης να σύρετε το κέντρο περιστροφής σε οποιαδήποτε θέση. + + + + + + + Ή, μπορείτε να περιστρέψετε από το πληκτρολόγιο πατώντας [ και ] (κατά 15 μοίρες) ή Ctrl+[ και Ctrl+] (κατά 90 μοίρες). Τα ίδια πλήκτρα [] με Alt εκτελούν αργή περιστροφή μεγέθους εικονοστοιχείου. + + + Πίπτουσες σκιές + + + + + + + Το Inkscape υποστηρίζει το φίλτρο θόλωση Gauss SVG, έτσι μπορείτε εύκολα να δημιουργήσετε θολές πίπτουσες σκιές για αντικείμενα. Διαλέξτε ένα αντικείμενο, διπλασιάστε το με Ctrl+D, πατήστε PgDown για να το βάλετε κάτω από το αρχικό αντικείμενο, βάλτε το λίγο στα δεξιά και χαμηλότερα από το αρχικό αντικείμενο. Τώρα ανοίξτε το διάλογο γέμισμα και πινελιά και αλλάξτε τη τιμή θόλωσης σε, ας πούμε, 5,0. Αυτό είναι! + + + Τοποθετώντας κείμενο σε μονοπάτι + + + + + + + Για τοποθέτηση κειμένου κατά μήκος της καμπύλης, επιλέξτε το κείμενο και την καμπύλη μαζί και διαλέξτε Τοποθέτηση σε μονοπάτι από το μενού κειμένου. Το κείμενο θα ξεκινά στην αρχή του μονοπατιού. Γενικά, είναι καλύτερο να δημιουργείτε ένα μονοπάτι στο οποίο θέλετε να ταιριάσετε το κείμενο, παρά να το προσαρμόζετε σε κάποιο άλλο στοιχείο σχεδίασης — αυτό θα σας δώσει περισσότερο έλεγχο χωρίς αλλαγές στο σχέδιο. + + + Επιλογή του αρχικού + + + + + + + Όταν έχετε κείμενο στο μονοπάτι, μια συνδεμένη μετατόπιση, ή ένας κλώνος, το πηγαίο αντικείμενο/μονοπάτι ίσως να είναι δύσκολο να επιλεγεί, επειδή μπορεί να είναι ακριβώς από κάτω ή να είναι αόρατο και/ή κλειδωμένο. Το μαγικό κλειδί Shift+D θα σας βοηθήσει. Επιλέξτε το κείμενο, τη συνδεμένη μετατόπιση ή τον κλώνο και πατήστε Shift+D για να μετακινήσετε την επιλογή στο αντίστοιχο μονοπάτι, πηγή μετατόπισης ή αρχικό κλώνο. + + + Ανάκτηση παραθύρου εκτός οθόνης + + + + + + + Όταν μετακινείται αντικείμενα μεταξύ συστημάτων με διαφορετικές αναλύσεις ή αριθμό οθονών, μπορεί να βρείτε ότι το Inkscape αποθήκευσε τη θέση του παραθύρου που τοποθετεί το παράθυρο εκτός της δικής σας οθόνης. Απλά μεγιστοποιήστε το παράθυρο (που θα το ξανακάνει ορατό, χρησιμοποιώντας τη γραμμή εργασιών. Μπορείτε να το αποφύγετε γενικά αποεπιλέγοντας τη γενική επιλογή αποθήκευσης της γεωμετρίας του παραθύρου (Προτιμήσεις Inkscape, καρτέλα Παράθυρα). + + + Εξαγωγή διαφάνειας, διαβάθμισης και PostScript + + + + + + + PostScript ή μορφές EPS δεν υποστηρίζουν διαφάνεια, έτσι δεν θα πρέπει ποτέ να τις χρησιμοποιήσετε, εάν πρόκειται να εξάγετε σε PS/EPS. Στην περίπτωση της επίπεδης διαφάνειας που επικαλύπτει επίπεδο χρώμα, είναι εύκολο να το φιάξετε: Επιλέξτε ένα από τα διαφανή αντικείμενα, μετάβαση στο εργαλείο σταγονόμετρου (F7). Βεβαιωθείτε ότι είναι στην κατάσταση "επιλογή ορατού χρώματος χωρίς άλφα". Κλικ στο ίδιο αντικείμενο. Θα επιλέξει το ορατό χρώμα και θα το αποδώσει πίσω στο αντικείμενο, αλλά αυτή τη φορά χωρίς διαφάνεια. Επανάληψη για όλα τα διαφανή αντικείμενα. Εάν το διαφανές σας αντικείμενο επικαλύπτει πολλές επίπεδες χρωματικές περιοχές, θα πρέπει να το σπάσετε κατάλληλα σε κομμάτια και να εφαρμόσετε αυτή τη διαδικασία σε κάθε κομμάτι. + + + + + + + Εξαγωγή διαβαθμίσεων σε PS ή EPS δεν δουλεύει για κείμενο (εκτός και το κείμενο μετατραπεί σε μονοπάτι) ή σε χρώμα πινελιάς. Επίσης, αφού η διαφάνεια χάνεται σε εξαγωγή PS ή EPS, δεν μπορείτε να χρησιμοποιήσετε π.χ. μια διαβάθμιση από ένα αδιαφανές μπλε σε διαφανές μπλε. Για να το αποφύγετε, αντικαταστήστε το με μια διαβάθμιση από αδιαφανές μπλε σε αδιαφανές χρώμα παρασκηνίου. + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Use Ctrl+up arrow to scroll + + + + -- cgit v1.2.3 From 6ffe6f384a2d322451cb21e720effdae7aa904f0 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Mon, 11 Jul 2011 20:44:59 +0200 Subject: Fix crash caused by my previous commit; as reported by ~suv in bug lp:212768 Fixed bugs: - https://launchpad.net/bugs/212768 (bzr r10443) --- src/sp-item-transform.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index 45d965e44..eb4b81a61 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -183,11 +183,11 @@ get_scale_transform_with_uniform_stroke (Geom::Rect const &bbox_visual, gdouble scale *= direct; } } else { // The stroke should not be scaled, or is zero - if (!transform_stroke) { // Nonscaling strokewidth + if (r0 == 0 || r0 == Geom::infinity() ) { // Strokewidth is zero or infinite + scale *= direct; + } else { // Nonscaling strokewidth scale *= direct_constant_r; unbudge *= Geom::Translate (flip_x * 0.5 * r0 * (1 - ratio_x), flip_y * 0.5 * r0 * (1 - ratio_y)); - } else { // Strokewidth is zero or infinite - scale *= direct; } } @@ -336,11 +336,11 @@ get_scale_transform_with_unequal_stroke (Geom::Rect const &bbox_visual, Geom::Re scale *= direct; } } else { // The stroke should not be scaled, or is zero (or infinite) - if (!transform_stroke) { + if (r0w == 0 || r0w == Geom::infinity() || r0h == 0 || r0h == Geom::infinity()) { // can't calculate, because apparently strokewidth is zero or infinite + scale *= direct; + } else { scale *= direct_constant_r; unbudge *= Geom::Translate (flip_x * stroke_ratio_w * r0w * (1 - ratio_x), flip_y * stroke_ratio_h * r0h * (1 - ratio_y)); - } else { // can't calculate, because apparently strokewidth is zero or infinite - scale *= direct; } } @@ -350,7 +350,6 @@ get_scale_transform_with_unequal_stroke (Geom::Rect const &bbox_visual, Geom::Re Geom::Rect get_visual_bbox (Geom::OptRect const &initial_geom_bbox, Geom::Affine const &abs_affine, gdouble const initial_strokewidth, bool const transform_stroke) { - g_assert(initial_geom_bbox); // Find the new geometric bounding box; Do this by transforming each corner of -- cgit v1.2.3 From f2e5e7329cbfa0352530ea97a21fef3aa834b36f Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 11 Jul 2011 21:13:36 +0200 Subject: Packaging. New Greek translation of the Windows installer by Dimitris Spingos. (bzr r10444) --- packaging/win32/inkscape.nsi | 2 + packaging/win32/languages/Greek.nsh | 113 ++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 packaging/win32/languages/Greek.nsh diff --git a/packaging/win32/inkscape.nsi b/packaging/win32/inkscape.nsi index fd9bbd424..3518a65bf 100755 --- a/packaging/win32/inkscape.nsi +++ b/packaging/win32/inkscape.nsi @@ -124,6 +124,7 @@ ShowUninstDetails hide !insertmacro INKLANGFILE French !insertmacro INKLANGFILE Galician !insertmacro INKLANGFILE German +!insertmacro INKLANGFILE Greek !insertmacro INKLANGFILE Indonesian !insertmacro INKLANGFILE Italian !insertmacro INKLANGFILE Japanese @@ -657,6 +658,7 @@ Function .onInit ; initialise the installer {{{2 !insertmacro LanguageAutoSelect French 1036 !insertmacro LanguageAutoSelect Galician 1110 !insertmacro LanguageAutoSelect German 1031 + !insertmacro LanguageAutoSelect Greek 1032 !insertmacro LanguageAutoSelect Indonesian 1057 !insertmacro LanguageAutoSelect Italian 1040 !insertmacro LanguageAutoSelect Japanese 1041 diff --git a/packaging/win32/languages/Greek.nsh b/packaging/win32/languages/Greek.nsh new file mode 100644 index 000000000..74902dd83 --- /dev/null +++ b/packaging/win32/languages/Greek.nsh @@ -0,0 +1,113 @@ +;Language: (1032, CP1253) +;By Dimitris Spingos ( ) +${LangFileString} CaptionDescription " " +${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) (GPL). . $_CLICK" +${LangFileString} DIFFERENT_USER " Inkscape $0.$\r$\n !$\r$\n $0 ." +${LangFileString} WANT_UNINSTALL_BEFORE "$R1 . $\n $(^Name);" +${LangFileString} OK_CANCEL_DESC "$\n$\n ." +${LangFileString} NO_ADMIN " .$\r$\n Inkscape .$\r$\n ' '." +${LangFileString} NOT_SUPPORTED " Inkscape Windows 95/98/ME!$\r$\n ." +${LangFileString} Full "" +${LangFileString} Optimal "" +${LangFileString} Minimal "" +${LangFileString} Core " Inkscape SVG ()" +${LangFileString} CoreDesc " Inkscape dlls" +${LangFileString} GTKFiles "GTK+ Runtime Environment ()" +${LangFileString} GTKFilesDesc " GUI , Inkscape" +${LangFileString} Shortcuts "" +${LangFileString} ShortcutsDesc " Inkscape" +${LangFileString} Alluser " " +${LangFileString} AlluserDesc " ( )" +${LangFileString} Desktop " " +${LangFileString} DesktopDesc " Inkscape " +${LangFileString} Startmenu " " +${LangFileString} StartmenuDesc " Inkscape" +${LangFileString} Quicklaunch " " +${LangFileString} QuicklaunchDesc " Inkscape " +${LangFileString} SVGWriter " SVG Inkscape" +${LangFileString} SVGWriterDesc " Inkscape SVG" +${LangFileString} ContextMenu " " +${LangFileString} ContextMenuDesc " Inkscape SVG" +${LangFileString} DeletePrefs " " +${LangFileString} DeletePrefsDesc " " +${LangFileString} Addfiles " " +${LangFileString} AddfilesDesc " " +${LangFileString} Examples "" +${LangFileString} ExamplesDesc " Inkscape" +${LangFileString} Tutorials "" +${LangFileString} TutorialsDesc " Inkscape" +${LangFileString} Languages "" +${LangFileString} LanguagesDesc " Inkscape" +${LangFileString} lng_am "" +${LangFileString} lng_ar "" +${LangFileString} lng_az "" +${LangFileString} lng_be "" +${LangFileString} lng_bg "" +${LangFileString} lng_bn "" +${LangFileString} lng_br "" +${LangFileString} lng_ca "" +${LangFileString} lng_ca@valencia " " +${LangFileString} lng_cs "" +${LangFileString} lng_da "" +${LangFileString} lng_de "" +${LangFileString} lng_dz "" +${LangFileString} lng_el "" +${LangFileString} lng_en "" +${LangFileString} lng_en_AU " " +${LangFileString} lng_en_CA " " +${LangFileString} lng_en_GB " " +${LangFileString} lng_en_US@piglatin "Pig " +${LangFileString} lng_eo "" +${LangFileString} lng_es "" +${LangFileString} lng_es_MX " " +${LangFileString} lng_et "" +${LangFileString} lng_eu "" +${LangFileString} lng_fa "" +${LangFileString} lng_fi "" +${LangFileString} lng_fr "" +${LangFileString} lng_ga "" +${LangFileString} lng_gl "" +${LangFileString} lng_he "" +${LangFileString} lng_hr "" +${LangFileString} lng_hu "" +${LangFileString} lng_id "" +${LangFileString} lng_it "" +${LangFileString} lng_ja "" +${LangFileString} lng_km "" +${LangFileString} lng_ko "" +${LangFileString} lng_lt "" +${LangFileString} lng_mk "" +${LangFileString} lng_mn "" +${LangFileString} lng_ne "" +${LangFileString} lng_nb " Bokml" +${LangFileString} lng_nl "" +${LangFileString} lng_nn " Nynorsk" +${LangFileString} lng_pa "" +${LangFileString} lng_pl "" +${LangFileString} lng_pt "" +${LangFileString} lng_pt_BR " " +${LangFileString} lng_ro "" +${LangFileString} lng_ru "" +${LangFileString} lng_rw "" +${LangFileString} lng_sk "" +${LangFileString} lng_sl "" +${LangFileString} lng_sq "" +${LangFileString} lng_sr "" +${LangFileString} lng_sr@latin " " +${LangFileString} lng_sv "" +${LangFileString} lng_te_IN "" +${LangFileString} lng_th "" +${LangFileString} lng_tr "" +${LangFileString} lng_uk "" +${LangFileString} lng_vi "" +${LangFileString} lng_zh_CN " " +${LangFileString} lng_zh_TW " " +${LangFileString} UInstOpt " " +${LangFileString} UInstOpt1 " " +${LangFileString} PurgePrefs " " +${LangFileString} UninstallLogNotFound "$INSTDIR\uninstall.log !$\r$\n $INSTDIR !" +${LangFileString} FileChanged " $filename .$\r$\n ;" +${LangFileString} Yes "" +${LangFileString} AlwaysYes " " +${LangFileString} No "" +${LangFileString} AlwaysNo " " -- cgit v1.2.3 From 4c6c9c017d28a3c28f467ec390980d2f7f4aab8d Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Tue, 12 Jul 2011 22:25:59 +0200 Subject: Dutch translation update (bzr r10445) --- po/nl.po | 5986 +++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 3193 insertions(+), 2793 deletions(-) diff --git a/po/nl.po b/po/nl.po index 1adc2029b..ca8ccd14c 100644 --- a/po/nl.po +++ b/po/nl.po @@ -52,8 +52,8 @@ msgid "" msgstr "" "Project-Id-Version: inkscape 0.49\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2011-06-15 21:40+0200\n" -"PO-Revision-Date: 2011-06-18 12:33+0100\n" +"POT-Creation-Date: 2011-07-10 19:44+0200\n" +"PO-Revision-Date: 2011-07-12 21:27+0100\n" "Last-Translator: Kris De Gussem \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" @@ -156,11 +156,23 @@ msgstr "Afbeelding geëxtraheerd naar: %s" msgid "Unable to find image data." msgstr "Geen afbeeldingsdata gevonden." -#: ../share/extensions/gcodetools.py:3087 +#: ../share/extensions/gcodetools.py:3317 +#: ../share/extensions/gcodetools.py:4522 +#: ../share/extensions/gcodetools.py:4695 +#: ../share/extensions/gcodetools.py:6228 +#: ../share/extensions/gcodetools.py:6423 +msgid "No paths are selected! Trying to work on all available paths." +msgstr "Er zijn geen paden geselecteerd! Tracht te werken op alle aanwezige paden." + +#: ../share/extensions/gcodetools.py:3320 +msgid "Noting is selected. Please select something." +msgstr "Er is niets geselecteerd. Selecteer aub. iets." + +#: ../share/extensions/gcodetools.py:3860 msgid "Directory does not exist! Please specify existing directory at Preferences tab!" msgstr "Map bestaat niet! Geef alstublief een bestaande map op in het tabblad Voorkeuren!" -#: ../share/extensions/gcodetools.py:3112 +#: ../share/extensions/gcodetools.py:3890 #, python-format msgid "" "Can not write to specified file!\n" @@ -169,28 +181,33 @@ msgstr "" "Kan niet schrijven naar opgegeven bestand!\n" "%s" -#: ../share/extensions/gcodetools.py:3240 +#: ../share/extensions/gcodetools.py:4036 #, python-format msgid "Orientation points for '%s' layer have not been found! Please add orientation points using Orientation tab!" msgstr "Oriëntatiepunten voor laag '%s' werden niet gevonden! Voeg aub oriëntatiepunten toe met de tab Oriëntatie!" -#: ../share/extensions/gcodetools.py:3246 +#: ../share/extensions/gcodetools.py:4043 #, python-format msgid "There are more than one orientation point groups in '%s' layer" msgstr "Er is meer dan één oriëntatiepuntgroep in laag '%s'." -#: ../share/extensions/gcodetools.py:3277 -#: ../share/extensions/gcodetools.py:3279 -msgid "Orientation points are wrong! (if there are two orientation points they sould not be the same. If there are three orientation points they should not be in a straight line.)" +#: ../share/extensions/gcodetools.py:4074 +#: ../share/extensions/gcodetools.py:4076 +msgid "Orientation points are wrong! (if there are two orientation points they should not be the same. If there are three orientation points they should not be in a straight line.)" msgstr "Oriëntatiepunten zijn foutief! (indien er twee oriëntatiepunten zijn, mogen deze niet identiek zijn. Indien er drie oriëntatiepunten zijn, mogen ze niet op een rechte lijn liggen.)" -#: ../share/extensions/gcodetools.py:3398 +#: ../share/extensions/gcodetools.py:4246 #, python-format msgid "Warning! Found bad orientation points in '%s' layer. Resulting Gcode could be corrupt!" msgstr "Waarschuwing! Slechte oriëntatiepunten gevonden in laag '%s'. Resulterende Gcode kan corrupt zijn!" +#: ../share/extensions/gcodetools.py:4259 +#, python-format +msgid "Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode could be corrupt!" +msgstr "Waarschuwing! Slechte graffiti oriëntatiepunten gevonden in laag '%s'. Resulterende Gcode kan corrupt zijn!" + #. xgettext:no-pango-format -#: ../share/extensions/gcodetools.py:3412 +#: ../share/extensions/gcodetools.py:4280 msgid "" "This extension works with Paths and Dynamic Offsets and groups of them only! All other objects will be ignored!\n" "Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" @@ -202,76 +219,95 @@ msgstr "" "Oplossing 2: Pad->Dynamische offset of Ctrl+J.\n" "Oplossing 3: exporteer alle contouren naar PostScript niveau 2 (Bestand->Opslaan als->.ps) en dit vervolgens importeren (Bestand->Importeren)." -#: ../share/extensions/gcodetools.py:3469 +#: ../share/extensions/gcodetools.py:4286 +msgid "Document has no layers! Add at least one layer using layers panel (Ctrl+Shift+L)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4290 +msgid "Warning! There are some paths in the root of the document, but not in any layer! Using bottom-most layer for them." +msgstr "" + +#: ../share/extensions/gcodetools.py:4367 #, python-format msgid "Warning! Tool's and default tool's parameter's (%s) types are not the same ( type('%s') != type('%s') )." msgstr "Waarschwing! De parametertypes van het gereedschap en het standaard gereedschap (%s) zijn verschillend ( type('%s') != type('%s') )." -#: ../share/extensions/gcodetools.py:3472 +#: ../share/extensions/gcodetools.py:4370 #, python-format msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." msgstr "Waarschuwing! Gereedschap bevat parameter dat standaard gereedschap niet heeft ( '%s': '%s' )." -#: ../share/extensions/gcodetools.py:3486 +#: ../share/extensions/gcodetools.py:4384 #, python-format msgid "Layer '%s' contains more than one tool!" msgstr "Laag '%s' bevat meer dan één gereedschap!" -#: ../share/extensions/gcodetools.py:3489 +#: ../share/extensions/gcodetools.py:4387 #, python-format msgid "Can not find tool for '%s' layer! Please add one with Tools library tab!" msgstr "Kan geen gereedschap vinden voor de laag '%s'! Voeg alstublieft één toe met het tabblad Gereedschappenbibliotheek!" -#: ../share/extensions/gcodetools.py:3592 -#: ../share/extensions/gcodetools.py:3673 -msgid "No paths are selected! Trying to work on all available paths." -msgstr "Er zijn geen paden geselecteerd! Tracht te werken op alle aanwezige paden." - -#: ../share/extensions/gcodetools.py:3611 -#: ../share/extensions/gcodetools.py:3682 -msgid "Warning: One or more paths dont have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!" +#: ../share/extensions/gcodetools.py:4549 +#: ../share/extensions/gcodetools.py:4704 +msgid "Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl+Shift+G) and Object to Path (Ctrl+Shift+C)!" msgstr "Waarschuwing: een of meer paden hebben geen 'd' parameter. Probeer Groep opheffen (Ctrl+Shift+G) en Object naar pad (Ctrl+Shift+C)!" -#: ../share/extensions/gcodetools.py:3641 -msgid "Nothing is selected. Please select something to convert to drill point (dxfpoint) or clear point sign." +#: ../share/extensions/gcodetools.py:4663 +msgid "Noting is selected. Please select something to convert to drill point (dxfpoint) or clear point sign." msgstr "Er is niets geselecteerd. Selecteer aub. iets om te converteren naar een boorpunt (dxf-punt) of open punt." -#: ../share/extensions/gcodetools.py:3714 -#: ../share/extensions/gcodetools.py:3808 +#: ../share/extensions/gcodetools.py:4746 +#: ../share/extensions/gcodetools.py:4992 msgid "This extension requires at least one selected path." msgstr "Deze uitbreiding vereist ten minste één geselecteerd pad." -#: ../share/extensions/gcodetools.py:3720 +#: ../share/extensions/gcodetools.py:4752 +#: ../share/extensions/gcodetools.py:4998 #, python-format msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" msgstr "Diameter gereedschap moet > 0 zijn, maar dit is niet zo voor laag '%s'!" -#: ../share/extensions/gcodetools.py:3731 +#: ../share/extensions/gcodetools.py:4763 +#: ../share/extensions/gcodetools.py:4952 +#: ../share/extensions/gcodetools.py:5007 msgid "Warning: omitting non-path" msgstr "Waarschuwing: niet-pad overgeslagen" -#: ../share/extensions/gcodetools.py:4063 +#: ../share/extensions/gcodetools.py:5507 +msgid "Please select at least one path to engrave and run again." +msgstr "Selecteer minstens één pad om te graveren en voer opnieuw uit." + +#: ../share/extensions/gcodetools.py:5515 +msgid "Unknown unit selected. mm assumed" +msgstr "" + +#: ../share/extensions/gcodetools.py:5536 #, python-format -msgid "Tool '%s' has no shape!" -msgstr "Gereedschap '%s' heeft geen vorm!" +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "Gereedschap '%s' heeft geen vorm. 45 graden conus wordt verondersteld!" -#: ../share/extensions/gcodetools.py:4073 +#: ../share/extensions/gcodetools.py:5607 +#: ../share/extensions/gcodetools.py:5612 +msgid "csp_normalised_normal error. See log." +msgstr "" + +#: ../share/extensions/gcodetools.py:5800 msgid "No need to engrave sharp angles." msgstr "Het is niet nodig om scherpe hoeken te graveren." -#: ../share/extensions/gcodetools.py:4086 +#: ../share/extensions/gcodetools.py:5844 msgid "Active layer already has orientation points! Remove them or select another layer!" msgstr "Actieve laag bevat al oriëntatiepunten! Verwijder ze of selecteer een andere laag!" -#: ../share/extensions/gcodetools.py:4134 +#: ../share/extensions/gcodetools.py:5889 msgid "Active layer already has a tool! Remove it or select another layer!" msgstr "Actieve laag bevat al een gereedschap! Verwijder het of selecteer een andere laag!" -#: ../share/extensions/gcodetools.py:4258 +#: ../share/extensions/gcodetools.py:6004 msgid "Selection is empty! Will compute whole drawing." msgstr "Selectie is leeg! De volledige afbeelding wordt berekend." -#: ../share/extensions/gcodetools.py:4318 +#: ../share/extensions/gcodetools.py:6058 msgid "" "Tutorials, manuals and support can be found at\n" "English support forum:\n" @@ -285,23 +321,26 @@ msgstr "" "en Russisch support forum:\n" "\thttp://www.cnc-club.ru/gcodetoolsru" -#: ../share/extensions/gcodetools.py:4363 +#: ../share/extensions/gcodetools.py:6103 msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." msgstr "X- en Z-as herindeling van draaibank zouden 'X', 'Y' of 'Z' moeten zijn. Bezig met afronden..." -#: ../share/extensions/gcodetools.py:4366 +#: ../share/extensions/gcodetools.py:6106 msgid "Lathe X and Z axis remap should be the same. Exiting..." msgstr "X- en Z-as herindeling van draaibank zouden gelijk moeten zijn. Bezig met afronden..." -#: ../share/extensions/gcodetools.py:4527 -msgid "Select one of the active tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library." -msgstr "Selecteer een van de actieve tabs - Pad naar Gcode, Oppervlak, Oppervlakteartefacten, Gravure, DXF-punten, Gereedschappenbibliotheek of Oriëntatie." +#: ../share/extensions/gcodetools.py:6658 +#, fuzzy, python-format +msgid "" +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" +msgstr "Selecteer een van de actietabs - Pad naar Gcode, Oppervlak, Oppervlakteartefacten, Gravure, DXF-punten, Gereedschappenbibliotheek of Oriëntatie." -#: ../share/extensions/gcodetools.py:4533 +#: ../share/extensions/gcodetools.py:6664 msgid "Orientation points have not been defined! A default set of orientation points has been automatically added." msgstr "Oriëntatiepunten werden niet gedefinieerd! Een standaard set oriëntatiepunten werd automatisch toegevoegd." -#: ../share/extensions/gcodetools.py:4537 +#: ../share/extensions/gcodetools.py:6668 msgid "Cutting tool has not been defined! A default tool has been automatically added." msgstr "Snijgereedschap is niet gedefinieerd! Een standaard gereedschap werd automatisch toegevoegd." @@ -366,13 +405,13 @@ msgstr "" "Het eerste geselecteerde object is van het type '%s'.\n" "Probeer de procedure Paden->Object naar Pad." -#: ../share/extensions/perspective.py:74 -#: ../share/extensions/summersnight.py:50 +#: ../share/extensions/perspective.py:75 +#: ../share/extensions/summersnight.py:51 msgid "This extension requires that the second selected path be four nodes long." msgstr "Deze uitbreiding vereist dat het tweede geselecteerde pad vier knooppunten lang is." -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:82 +#: ../share/extensions/perspective.py:101 +#: ../share/extensions/summersnight.py:84 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." @@ -380,8 +419,8 @@ msgstr "" "Het tweede geselecteerde object is een groep en geen pad.\n" "Probeer de procedure Object->Groep opheffen." -#: ../share/extensions/perspective.py:101 -#: ../share/extensions/summersnight.py:84 +#: ../share/extensions/perspective.py:103 +#: ../share/extensions/summersnight.py:86 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -389,8 +428,8 @@ msgstr "" "Het tweede geselecteerde object is geen pad.\n" "Probeer de procedure Paden->Object naar Pad." -#: ../share/extensions/perspective.py:104 -#: ../share/extensions/summersnight.py:87 +#: ../share/extensions/perspective.py:106 +#: ../share/extensions/summersnight.py:89 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -531,6 +570,7 @@ msgstr "Randen vervagen gedeeltelijk naar de buitenkant toe" #: ../share/filters/filters.svg.h:1 #: ../src/extension/internal/filter/abc.h:739 +#: ../src/extension/internal/filter/shadows.h:65 msgid "Cutout" msgstr "Uitsnijding" @@ -707,6 +747,7 @@ msgid "Edge detect" msgstr "Randherkenning" #: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/image.h:65 msgid "Detect color edges in object" msgstr "Kleurranden in object detecteren" @@ -728,7 +769,7 @@ msgstr "Verticale kleurranden in object detecteren" #. Pencil #: ../share/filters/filters.svg.h:1 -#: ../src/ui/dialog/inkscape-preferences.cpp:521 +#: ../src/ui/dialog/inkscape-preferences.cpp:522 #: ../src/verbs.cpp:2520 msgid "Pencil" msgstr "Potlood" @@ -751,8 +792,8 @@ msgid "Desaturate" msgstr "Onverzadigd maken" #: ../share/filters/filters.svg.h:1 -#: ../src/dialogs/clonetiler.cpp:2543 -#: ../src/dialogs/clonetiler.cpp:2682 +#: ../src/dialogs/clonetiler.cpp:2517 +#: ../src/dialogs/clonetiler.cpp:2656 #: ../src/extension/internal/bitmap/colorize.cpp:51 #: ../src/extension/internal/filter/abc.h:477 #: ../src/extension/internal/filter/abc.h:580 @@ -760,6 +801,7 @@ msgstr "Onverzadigd maken" #: ../src/extension/internal/filter/color.h:153 #: ../src/extension/internal/filter/color.h:806 #: ../src/extension/internal/filter/experimental.h:97 +#: ../src/extension/internal/filter/shadows.h:69 #: ../share/extensions/color_blackandwhite.inx.h:2 #: ../share/extensions/color_brighter.inx.h:2 #: ../share/extensions/color_custom.inx.h:9 @@ -793,6 +835,7 @@ msgid "Invert" msgstr "Inverteren" #: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/image.h:57 msgid "Invert colors" msgstr "Kleuren inverteren" @@ -999,6 +1042,7 @@ msgid "Leaves on the ground in Fall, or living foliage" msgstr "Bladeren op de grond in de herfst of een levend bladerdek" #: ../share/filters/filters.svg.h:1 +#: ../src/extension/internal/filter/experimental.h:338 msgid "Translucent" msgstr "Doorzichtig" @@ -3673,7 +3717,7 @@ msgid "Defines the direction and magnitude of the extrusion" msgstr "Bepaalt de richting en mate van uitrekking" #: ../src/sp-flowtext.cpp:382 -#: ../src/sp-text.cpp:435 +#: ../src/sp-text.cpp:434 #: ../src/text-context.cpp:1627 msgid " [truncated]" msgstr " [afgekort]" @@ -3778,12 +3822,12 @@ msgid "Select at least one non-connector object." msgstr "Selecteer minstens één object dat geen verbindingsobject is." #: ../src/connector-context.cpp:1968 -#: ../src/widgets/toolbox.cpp:8256 +#: ../src/widgets/toolbox.cpp:8298 msgid "Make connectors avoid selected objects" msgstr "Ervoor zorgen dat verbindingen geselecteerde objecten ontwijken" #: ../src/connector-context.cpp:1969 -#: ../src/widgets/toolbox.cpp:8266 +#: ../src/widgets/toolbox.cpp:8308 msgid "Make connectors ignore selected objects" msgstr "Ervoor zorgen dat verbindingen geselecteerde objecten negeren" @@ -3807,7 +3851,7 @@ msgstr "Hulplijn verplaatsen" #: ../src/desktop-events.cpp:429 #: ../src/desktop-events.cpp:475 -#: ../src/ui/dialog/guides.cpp:125 +#: ../src/ui/dialog/guides.cpp:133 msgid "Delete guide" msgstr "Hulplijn verwijderen" @@ -3824,674 +3868,669 @@ msgstr "Er is geen vorige zoom." msgid "No next zoom." msgstr "Er is geen volgende zoom." -#: ../src/dialogs/clonetiler.cpp:145 +#: ../src/dialogs/clonetiler.cpp:146 msgid "Nothing selected." msgstr "Niets geselecteerd." -#: ../src/dialogs/clonetiler.cpp:151 +#: ../src/dialogs/clonetiler.cpp:152 msgid "More than one object selected." msgstr "Meer dan één object geselecteerd." -#: ../src/dialogs/clonetiler.cpp:158 +#: ../src/dialogs/clonetiler.cpp:159 #, c-format msgid "Object has %d tiled clones." msgstr "Het object heeft %d getegelde klonen." -#: ../src/dialogs/clonetiler.cpp:163 +#: ../src/dialogs/clonetiler.cpp:164 msgid "Object has no tiled clones." msgstr "Het object heeft geen getegelde klonen." -#: ../src/dialogs/clonetiler.cpp:962 +#: ../src/dialogs/clonetiler.cpp:928 msgid "Select one object whose tiled clones to unclump." msgstr "Selecteer één object wiens klonen ontklonterd moeten worden." -#: ../src/dialogs/clonetiler.cpp:984 +#: ../src/dialogs/clonetiler.cpp:950 msgid "Unclump tiled clones" msgstr "Getegelde klonen ontklonteren" -#: ../src/dialogs/clonetiler.cpp:1013 +#: ../src/dialogs/clonetiler.cpp:979 msgid "Select one object whose tiled clones to remove." msgstr "Selecteer één object waarvan de getegelde klonen verwijderd moeten worden." -#: ../src/dialogs/clonetiler.cpp:1036 +#: ../src/dialogs/clonetiler.cpp:1002 msgid "Delete tiled clones" msgstr "Verwijder getegelde klonen" -#: ../src/dialogs/clonetiler.cpp:1083 -#: ../src/selection-chemistry.cpp:2048 +#: ../src/dialogs/clonetiler.cpp:1049 +#: ../src/selection-chemistry.cpp:2044 msgid "Select an object to clone." msgstr "Selecteer een object om te klonen." -#: ../src/dialogs/clonetiler.cpp:1089 +#: ../src/dialogs/clonetiler.cpp:1055 msgid "If you want to clone several objects, group them and clone the group." msgstr "Als u meerdere objecten wilt klonen, groepeer ze dan en kloon de groep." -#: ../src/dialogs/clonetiler.cpp:1098 +#: ../src/dialogs/clonetiler.cpp:1064 msgid "Creating tiled clones..." msgstr "Getegelde klonen maken..." -#: ../src/dialogs/clonetiler.cpp:1501 +#: ../src/dialogs/clonetiler.cpp:1467 msgid "Create tiled clones" msgstr "Tegelen met klonen" -#: ../src/dialogs/clonetiler.cpp:1681 +#: ../src/dialogs/clonetiler.cpp:1647 msgid "Per row:" msgstr "Per rij:" -#: ../src/dialogs/clonetiler.cpp:1694 +#: ../src/dialogs/clonetiler.cpp:1660 msgid "Per column:" msgstr "Per kolom:" -#: ../src/dialogs/clonetiler.cpp:1702 +#: ../src/dialogs/clonetiler.cpp:1668 msgid "Randomize:" msgstr "Willekeurig:" -#: ../src/dialogs/clonetiler.cpp:1847 +#: ../src/dialogs/clonetiler.cpp:1813 msgid "_Symmetry" msgstr "_Symmetrie" -#. TRANSLATORS: For the following 17 symmetry groups, see -#. * http://www.bib.ulb.ac.be/coursmath/doc/17.htm (visual examples); -#. * http://www.clarku.edu/~djoyce/wallpaper/seventeen.html (English vocabulary); or -#. * http://membres.lycos.fr/villemingerard/Geometri/Sym1D.htm (French vocabulary). -#. -#: ../src/dialogs/clonetiler.cpp:1855 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "Selecteer één van de 17 symmetriegroepen voor het tegelen" - #. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/dialogs/clonetiler.cpp:1866 +#: ../src/dialogs/clonetiler.cpp:1825 msgid "P1: simple translation" msgstr "P1: eenvoudige verplaatsing" -#: ../src/dialogs/clonetiler.cpp:1867 +#: ../src/dialogs/clonetiler.cpp:1826 msgid "P2: 180° rotation" msgstr "P2: 180° draaien" -#: ../src/dialogs/clonetiler.cpp:1868 +#: ../src/dialogs/clonetiler.cpp:1827 msgid "PM: reflection" msgstr "PM: spiegeling" #. TRANSLATORS: "glide reflection" is a reflection and a translation combined. #. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/dialogs/clonetiler.cpp:1871 +#: ../src/dialogs/clonetiler.cpp:1830 msgid "PG: glide reflection" msgstr "PG: schuifspiegeling" -#: ../src/dialogs/clonetiler.cpp:1872 +#: ../src/dialogs/clonetiler.cpp:1831 msgid "CM: reflection + glide reflection" msgstr "CM: spiegeling + schuifspiegeling" -#: ../src/dialogs/clonetiler.cpp:1873 +#: ../src/dialogs/clonetiler.cpp:1832 msgid "PMM: reflection + reflection" msgstr "PMM: spiegeling + spiegeling" -#: ../src/dialogs/clonetiler.cpp:1874 +#: ../src/dialogs/clonetiler.cpp:1833 msgid "PMG: reflection + 180° rotation" msgstr "PMG: spiegeling + 180° draaien" -#: ../src/dialogs/clonetiler.cpp:1875 +#: ../src/dialogs/clonetiler.cpp:1834 msgid "PGG: glide reflection + 180° rotation" msgstr "PGG: schuifspiegeling + 180° draaien" -#: ../src/dialogs/clonetiler.cpp:1876 +#: ../src/dialogs/clonetiler.cpp:1835 msgid "CMM: reflection + reflection + 180° rotation" msgstr "CMM: spiegeling + spiegeling + 180° draaien" -#: ../src/dialogs/clonetiler.cpp:1877 +#: ../src/dialogs/clonetiler.cpp:1836 msgid "P4: 90° rotation" msgstr "P4: 90° draaien" -#: ../src/dialogs/clonetiler.cpp:1878 +#: ../src/dialogs/clonetiler.cpp:1837 msgid "P4M: 90° rotation + 45° reflection" msgstr "P4M: 90° draaien + 45° spiegeling" -#: ../src/dialogs/clonetiler.cpp:1879 +#: ../src/dialogs/clonetiler.cpp:1838 msgid "P4G: 90° rotation + 90° reflection" msgstr "P4G: 90° draaien + 90° spiegeling" -#: ../src/dialogs/clonetiler.cpp:1880 +#: ../src/dialogs/clonetiler.cpp:1839 msgid "P3: 120° rotation" msgstr "P3: 120° draaien" -#: ../src/dialogs/clonetiler.cpp:1881 +#: ../src/dialogs/clonetiler.cpp:1840 msgid "P31M: reflection + 120° rotation, dense" msgstr "P31M: spiegeling + 120° draaien, dicht" -#: ../src/dialogs/clonetiler.cpp:1882 +#: ../src/dialogs/clonetiler.cpp:1841 msgid "P3M1: reflection + 120° rotation, sparse" msgstr "P3M1: spiegeling + 120° draaien, dun" -#: ../src/dialogs/clonetiler.cpp:1883 +#: ../src/dialogs/clonetiler.cpp:1842 msgid "P6: 60° rotation" msgstr "P6: 60° draaien" -#: ../src/dialogs/clonetiler.cpp:1884 +#: ../src/dialogs/clonetiler.cpp:1843 msgid "P6M: reflection + 60° rotation" msgstr "P6M: spiegeling + 60° draaien" -#: ../src/dialogs/clonetiler.cpp:1912 +#: ../src/dialogs/clonetiler.cpp:1865 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "Selecteer één van de 17 symmetriegroepen voor het tegelen" + +#: ../src/dialogs/clonetiler.cpp:1886 msgid "S_hift" msgstr "Ver_plaatsing" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/dialogs/clonetiler.cpp:1922 +#: ../src/dialogs/clonetiler.cpp:1896 #, no-c-format msgid "Shift X:" msgstr "X-verplaatsing:" -#: ../src/dialogs/clonetiler.cpp:1930 +#: ../src/dialogs/clonetiler.cpp:1904 #, no-c-format msgid "Horizontal shift per row (in % of tile width)" msgstr "Horizontale verplaatsing voor elke volgende rij (in % van de tegelbreedte)" -#: ../src/dialogs/clonetiler.cpp:1938 +#: ../src/dialogs/clonetiler.cpp:1912 #, no-c-format msgid "Horizontal shift per column (in % of tile width)" msgstr "Horizontale verplaatsing voor elke volgende kolom (in % van de tegelbreedte)" -#: ../src/dialogs/clonetiler.cpp:1944 +#: ../src/dialogs/clonetiler.cpp:1918 msgid "Randomize the horizontal shift by this percentage" msgstr "De horizontale positie binnen dit percentage willekeurig aanpassen" #. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/dialogs/clonetiler.cpp:1954 +#: ../src/dialogs/clonetiler.cpp:1928 #, no-c-format msgid "Shift Y:" msgstr "Y-verplaatsing:" -#: ../src/dialogs/clonetiler.cpp:1962 +#: ../src/dialogs/clonetiler.cpp:1936 #, no-c-format msgid "Vertical shift per row (in % of tile height)" msgstr "Verticale verplaatsing voor elke volgende rij (in % van de tegelhoogte)" -#: ../src/dialogs/clonetiler.cpp:1970 +#: ../src/dialogs/clonetiler.cpp:1944 #, no-c-format msgid "Vertical shift per column (in % of tile height)" msgstr "Verticale verplaatsing voor elke volgende kolom (in % van de tegelhoogte)" -#: ../src/dialogs/clonetiler.cpp:1977 +#: ../src/dialogs/clonetiler.cpp:1951 msgid "Randomize the vertical shift by this percentage" msgstr "De verticale positie binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:1985 -#: ../src/dialogs/clonetiler.cpp:2131 +#: ../src/dialogs/clonetiler.cpp:1959 +#: ../src/dialogs/clonetiler.cpp:2105 msgid "Exponent:" msgstr "Exponent:" -#: ../src/dialogs/clonetiler.cpp:1992 +#: ../src/dialogs/clonetiler.cpp:1966 msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "Of de rij-afstand gelijk blijft (1), afneemt (<1) of toeneemt (>1)" -#: ../src/dialogs/clonetiler.cpp:1999 +#: ../src/dialogs/clonetiler.cpp:1973 msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" msgstr "Of de kolom-afstand gelijk blijft (1), afneemt (<1) of toeneemt (>1)" #. TRANSLATORS: "Alternate" is a verb here -#: ../src/dialogs/clonetiler.cpp:2007 -#: ../src/dialogs/clonetiler.cpp:2171 -#: ../src/dialogs/clonetiler.cpp:2247 -#: ../src/dialogs/clonetiler.cpp:2320 -#: ../src/dialogs/clonetiler.cpp:2366 -#: ../src/dialogs/clonetiler.cpp:2488 +#: ../src/dialogs/clonetiler.cpp:1981 +#: ../src/dialogs/clonetiler.cpp:2145 +#: ../src/dialogs/clonetiler.cpp:2221 +#: ../src/dialogs/clonetiler.cpp:2294 +#: ../src/dialogs/clonetiler.cpp:2340 +#: ../src/dialogs/clonetiler.cpp:2462 msgid "Alternate:" msgstr "Afwisselen:" -#: ../src/dialogs/clonetiler.cpp:2013 +#: ../src/dialogs/clonetiler.cpp:1987 msgid "Alternate the sign of shifts for each row" msgstr "De verplaatsingen voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2018 +#: ../src/dialogs/clonetiler.cpp:1992 msgid "Alternate the sign of shifts for each column" msgstr "De verplaatsingen voor elke kolom om-en-om afwisselen" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:2025 -#: ../src/dialogs/clonetiler.cpp:2189 -#: ../src/dialogs/clonetiler.cpp:2265 +#: ../src/dialogs/clonetiler.cpp:1999 +#: ../src/dialogs/clonetiler.cpp:2163 +#: ../src/dialogs/clonetiler.cpp:2239 msgid "Cumulate:" msgstr "Optellen:" -#: ../src/dialogs/clonetiler.cpp:2031 +#: ../src/dialogs/clonetiler.cpp:2005 msgid "Cumulate the shifts for each row" msgstr "De verplaatsingen voor elke rij optellen" -#: ../src/dialogs/clonetiler.cpp:2036 +#: ../src/dialogs/clonetiler.cpp:2010 msgid "Cumulate the shifts for each column" msgstr "De verplaatsingen voor elke kolom optellen" #. TRANSLATORS: "Cumulate" is a verb here -#: ../src/dialogs/clonetiler.cpp:2043 +#: ../src/dialogs/clonetiler.cpp:2017 msgid "Exclude tile:" msgstr "Tegel uitsluiten:" -#: ../src/dialogs/clonetiler.cpp:2049 +#: ../src/dialogs/clonetiler.cpp:2023 msgid "Exclude tile height in shift" msgstr "Tegelhoogte niet bij verplaatsing optellen" -#: ../src/dialogs/clonetiler.cpp:2054 +#: ../src/dialogs/clonetiler.cpp:2028 msgid "Exclude tile width in shift" msgstr "Tegelbreedte niet bij verplaatsing optellen" -#: ../src/dialogs/clonetiler.cpp:2063 +#: ../src/dialogs/clonetiler.cpp:2037 msgid "Sc_ale" msgstr "_Schalen" -#: ../src/dialogs/clonetiler.cpp:2071 +#: ../src/dialogs/clonetiler.cpp:2045 msgid "Scale X:" msgstr "X-vergroting:" -#: ../src/dialogs/clonetiler.cpp:2079 +#: ../src/dialogs/clonetiler.cpp:2053 #, no-c-format msgid "Horizontal scale per row (in % of tile width)" msgstr "Horizontale vergroting voor elke volgende rij (in % van de tegelbreedte)" -#: ../src/dialogs/clonetiler.cpp:2087 +#: ../src/dialogs/clonetiler.cpp:2061 #, no-c-format msgid "Horizontal scale per column (in % of tile width)" msgstr "Horizontale vergroting voor elke volgende kolom (in % van de tegelbreedte)" -#: ../src/dialogs/clonetiler.cpp:2093 +#: ../src/dialogs/clonetiler.cpp:2067 msgid "Randomize the horizontal scale by this percentage" msgstr "De horizontale afmeting binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2101 +#: ../src/dialogs/clonetiler.cpp:2075 msgid "Scale Y:" msgstr "Y-vergroting:" -#: ../src/dialogs/clonetiler.cpp:2109 +#: ../src/dialogs/clonetiler.cpp:2083 #, no-c-format msgid "Vertical scale per row (in % of tile height)" msgstr "Verticale vergroting voor elke volgende rij (in % van de tegelhoogte)" -#: ../src/dialogs/clonetiler.cpp:2117 +#: ../src/dialogs/clonetiler.cpp:2091 #, no-c-format msgid "Vertical scale per column (in % of tile height)" msgstr "Verticale vergroting voor elke volgende kolom (in % van de tegelhoogte)" -#: ../src/dialogs/clonetiler.cpp:2123 +#: ../src/dialogs/clonetiler.cpp:2097 msgid "Randomize the vertical scale by this percentage" msgstr "De verticale afmeting binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2137 +#: ../src/dialogs/clonetiler.cpp:2111 msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "Soort rijvergroting: uniform (1), convergent (<1) of divergent (>1)" -#: ../src/dialogs/clonetiler.cpp:2143 +#: ../src/dialogs/clonetiler.cpp:2117 msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" msgstr "Soort kolomvergroting: uniform (1), convergent (<1) of divergent (>1)" -#: ../src/dialogs/clonetiler.cpp:2151 +#: ../src/dialogs/clonetiler.cpp:2125 msgid "Base:" msgstr "Grondtal:" -#: ../src/dialogs/clonetiler.cpp:2157 -#: ../src/dialogs/clonetiler.cpp:2163 +#: ../src/dialogs/clonetiler.cpp:2131 +#: ../src/dialogs/clonetiler.cpp:2137 msgid "Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" msgstr "Grondtal voor logaritmische spiraal: ongebruikt (0), convergent (<1) of divergent (>1)" -#: ../src/dialogs/clonetiler.cpp:2177 +#: ../src/dialogs/clonetiler.cpp:2151 msgid "Alternate the sign of scales for each row" msgstr "De vergroting voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2182 +#: ../src/dialogs/clonetiler.cpp:2156 msgid "Alternate the sign of scales for each column" msgstr "De vergroting voor elke kolom om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2195 +#: ../src/dialogs/clonetiler.cpp:2169 msgid "Cumulate the scales for each row" msgstr "De vergrotingen voor elke rij optellen" -#: ../src/dialogs/clonetiler.cpp:2200 +#: ../src/dialogs/clonetiler.cpp:2174 msgid "Cumulate the scales for each column" msgstr "De vergrotingen voor elke kolom optellen" -#: ../src/dialogs/clonetiler.cpp:2209 +#: ../src/dialogs/clonetiler.cpp:2183 msgid "_Rotation" msgstr "_Rotatie" -#: ../src/dialogs/clonetiler.cpp:2217 +#: ../src/dialogs/clonetiler.cpp:2191 msgid "Angle:" msgstr "Hoek:" -#: ../src/dialogs/clonetiler.cpp:2225 +#: ../src/dialogs/clonetiler.cpp:2199 #, no-c-format msgid "Rotate tiles by this angle for each row" msgstr "Voor elke volgende rij de tegels over deze hoek draaien" -#: ../src/dialogs/clonetiler.cpp:2233 +#: ../src/dialogs/clonetiler.cpp:2207 #, no-c-format msgid "Rotate tiles by this angle for each column" msgstr "Voor elke volgende kolom de tegels over deze hoek draaien" -#: ../src/dialogs/clonetiler.cpp:2239 +#: ../src/dialogs/clonetiler.cpp:2213 msgid "Randomize the rotation angle by this percentage" msgstr "De draaihoek binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2253 +#: ../src/dialogs/clonetiler.cpp:2227 msgid "Alternate the rotation direction for each row" msgstr "De draairichting voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2258 +#: ../src/dialogs/clonetiler.cpp:2232 msgid "Alternate the rotation direction for each column" msgstr "De draairichting voor elke kolom om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2271 +#: ../src/dialogs/clonetiler.cpp:2245 msgid "Cumulate the rotation for each row" msgstr "De rotaties voor elke rij optellen" -#: ../src/dialogs/clonetiler.cpp:2276 +#: ../src/dialogs/clonetiler.cpp:2250 msgid "Cumulate the rotation for each column" msgstr "De rotaties voor elke kolom optellen" -#: ../src/dialogs/clonetiler.cpp:2285 +#: ../src/dialogs/clonetiler.cpp:2259 msgid "_Blur & opacity" msgstr "_Vervaging & ondoorzichtigheid" -#: ../src/dialogs/clonetiler.cpp:2294 +#: ../src/dialogs/clonetiler.cpp:2268 msgid "Blur:" msgstr "Vervaging:" -#: ../src/dialogs/clonetiler.cpp:2300 +#: ../src/dialogs/clonetiler.cpp:2274 msgid "Blur tiles by this percentage for each row" msgstr "De tegels elke volgende rij met dit percentage vervagen" -#: ../src/dialogs/clonetiler.cpp:2306 +#: ../src/dialogs/clonetiler.cpp:2280 msgid "Blur tiles by this percentage for each column" msgstr "De tegels elke volgende kolom met dit percentage vervagen" -#: ../src/dialogs/clonetiler.cpp:2312 +#: ../src/dialogs/clonetiler.cpp:2286 msgid "Randomize the tile blur by this percentage" msgstr "Tegels binnen dit percentage willekeurig vervagen" -#: ../src/dialogs/clonetiler.cpp:2326 +#: ../src/dialogs/clonetiler.cpp:2300 msgid "Alternate the sign of blur change for each row" msgstr "De vervaging voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2331 +#: ../src/dialogs/clonetiler.cpp:2305 msgid "Alternate the sign of blur change for each column" msgstr "De vervaging voor elke kolom om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2340 +#: ../src/dialogs/clonetiler.cpp:2314 msgid "Opacity:" msgstr "Ondoorzichtigheid:" -#: ../src/dialogs/clonetiler.cpp:2346 +#: ../src/dialogs/clonetiler.cpp:2320 msgid "Decrease tile opacity by this percentage for each row" msgstr "De ondoorzichtigheid elke volgende rij met dit percentage verminderen" -#: ../src/dialogs/clonetiler.cpp:2352 +#: ../src/dialogs/clonetiler.cpp:2326 msgid "Decrease tile opacity by this percentage for each column" msgstr "De ondoorzichtigheid elke volgende kolom met dit percentage verminderen" -#: ../src/dialogs/clonetiler.cpp:2358 +#: ../src/dialogs/clonetiler.cpp:2332 msgid "Randomize the tile opacity by this percentage" msgstr "De ondoorzichtigheid binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2372 +#: ../src/dialogs/clonetiler.cpp:2346 msgid "Alternate the sign of opacity change for each row" msgstr "De doorzichtigheid voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2377 +#: ../src/dialogs/clonetiler.cpp:2351 msgid "Alternate the sign of opacity change for each column" msgstr "De doorzichtigheid voor elke kolom om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2385 +#: ../src/dialogs/clonetiler.cpp:2359 msgid "Co_lor" msgstr "_Kleur" -#: ../src/dialogs/clonetiler.cpp:2390 +#: ../src/dialogs/clonetiler.cpp:2364 msgid "Initial color: " msgstr "Beginkleur: " -#: ../src/dialogs/clonetiler.cpp:2394 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "Initial color of tiled clones" msgstr "Beginkleur van getegelde klonen" -#: ../src/dialogs/clonetiler.cpp:2394 +#: ../src/dialogs/clonetiler.cpp:2368 msgid "Initial color for clones (works only if the original has unset fill or stroke)" msgstr "Beginkleur van klonen (werkt alleen als het origineel geen vulling of lijn heeft)" -#: ../src/dialogs/clonetiler.cpp:2409 +#: ../src/dialogs/clonetiler.cpp:2383 msgid "H:" msgstr "Tint:" -#: ../src/dialogs/clonetiler.cpp:2415 +#: ../src/dialogs/clonetiler.cpp:2389 msgid "Change the tile hue by this percentage for each row" msgstr "De tint elke volgende rij met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2421 +#: ../src/dialogs/clonetiler.cpp:2395 msgid "Change the tile hue by this percentage for each column" msgstr "De tint elke volgende kolom met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2427 +#: ../src/dialogs/clonetiler.cpp:2401 msgid "Randomize the tile hue by this percentage" msgstr "De tint binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2436 +#: ../src/dialogs/clonetiler.cpp:2410 msgid "S:" msgstr "Verzadiging:" -#: ../src/dialogs/clonetiler.cpp:2442 +#: ../src/dialogs/clonetiler.cpp:2416 msgid "Change the color saturation by this percentage for each row" msgstr "De verzadiging elke volgende rij met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2448 +#: ../src/dialogs/clonetiler.cpp:2422 msgid "Change the color saturation by this percentage for each column" msgstr "De verzadiging elke volgende kolom met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2454 +#: ../src/dialogs/clonetiler.cpp:2428 msgid "Randomize the color saturation by this percentage" msgstr "De verzadiging binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2462 +#: ../src/dialogs/clonetiler.cpp:2436 msgid "L:" msgstr "Helderheid:" -#: ../src/dialogs/clonetiler.cpp:2468 +#: ../src/dialogs/clonetiler.cpp:2442 msgid "Change the color lightness by this percentage for each row" msgstr "De helderheid elke volgende rij met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2474 +#: ../src/dialogs/clonetiler.cpp:2448 msgid "Change the color lightness by this percentage for each column" msgstr "De helderheid elke volgende kolom met dit percentage aanpassen" -#: ../src/dialogs/clonetiler.cpp:2480 +#: ../src/dialogs/clonetiler.cpp:2454 msgid "Randomize the color lightness by this percentage" msgstr "De helderheid binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2494 +#: ../src/dialogs/clonetiler.cpp:2468 msgid "Alternate the sign of color changes for each row" msgstr "De kleurwijzigingen voor elke rij om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2499 +#: ../src/dialogs/clonetiler.cpp:2473 msgid "Alternate the sign of color changes for each column" msgstr "De kleurwijzigingen voor elke kolom om-en-om afwisselen" -#: ../src/dialogs/clonetiler.cpp:2507 +#: ../src/dialogs/clonetiler.cpp:2481 msgid "_Trace" msgstr "_Overtrekken" -#: ../src/dialogs/clonetiler.cpp:2514 +#: ../src/dialogs/clonetiler.cpp:2488 msgid "Trace the drawing under the tiles" msgstr "De tekening onder de tegels gebruiken" -#: ../src/dialogs/clonetiler.cpp:2518 +#: ../src/dialogs/clonetiler.cpp:2492 msgid "For each clone, pick a value from the drawing in that clone's location and apply it to the clone" msgstr "Voor elke kloon een eigenschap van de tekening op dat punt gebruiken om die kloon te beïnvloeden." -#: ../src/dialogs/clonetiler.cpp:2532 +#: ../src/dialogs/clonetiler.cpp:2506 msgid "1. Pick from the drawing:" msgstr "1. Kies een eigenschap uit de tekening:" -#: ../src/dialogs/clonetiler.cpp:2544 +#: ../src/dialogs/clonetiler.cpp:2518 msgid "Pick the visible color and opacity" msgstr "Selecteer de zichtbare kleur en de ondoorzichtigheid" -#: ../src/dialogs/clonetiler.cpp:2551 -#: ../src/dialogs/clonetiler.cpp:2692 +#: ../src/dialogs/clonetiler.cpp:2525 +#: ../src/dialogs/clonetiler.cpp:2666 #: ../src/extension/internal/bitmap/opacity.cpp:37 -#: ../src/widgets/toolbox.cpp:4553 +#: ../src/widgets/toolbox.cpp:4601 #: ../share/extensions/interp_att_g.inx.h:14 msgid "Opacity" msgstr "Ondoorzichtigheid" -#: ../src/dialogs/clonetiler.cpp:2552 +#: ../src/dialogs/clonetiler.cpp:2526 msgid "Pick the total accumulated opacity" msgstr "Selecteer de gesommeerde ondoorzichtigheid" -#: ../src/dialogs/clonetiler.cpp:2559 +#: ../src/dialogs/clonetiler.cpp:2533 msgid "R" msgstr "R" -#: ../src/dialogs/clonetiler.cpp:2560 +#: ../src/dialogs/clonetiler.cpp:2534 msgid "Pick the Red component of the color" msgstr "Selecteer de roodcomponent van de kleur" -#: ../src/dialogs/clonetiler.cpp:2567 +#: ../src/dialogs/clonetiler.cpp:2541 msgid "G" msgstr "G" -#: ../src/dialogs/clonetiler.cpp:2568 +#: ../src/dialogs/clonetiler.cpp:2542 msgid "Pick the Green component of the color" msgstr "Selecteer de groencomponent van de kleur" -#: ../src/dialogs/clonetiler.cpp:2575 +#: ../src/dialogs/clonetiler.cpp:2549 msgid "B" msgstr "B" -#: ../src/dialogs/clonetiler.cpp:2576 +#: ../src/dialogs/clonetiler.cpp:2550 msgid "Pick the Blue component of the color" msgstr "Selecteer de blauwcomponent van de kleur" -#: ../src/dialogs/clonetiler.cpp:2583 +#: ../src/dialogs/clonetiler.cpp:2557 msgctxt "Clonetiler color hue" msgid "H" msgstr "T" -#: ../src/dialogs/clonetiler.cpp:2584 +#: ../src/dialogs/clonetiler.cpp:2558 msgid "Pick the hue of the color" msgstr "De tint van de kleur kiezen" -#: ../src/dialogs/clonetiler.cpp:2591 +#: ../src/dialogs/clonetiler.cpp:2565 msgctxt "Clonetiler color saturation" msgid "S" msgstr "V" -#: ../src/dialogs/clonetiler.cpp:2592 +#: ../src/dialogs/clonetiler.cpp:2566 msgid "Pick the saturation of the color" msgstr "De verzadiging van de kleur kiezen" -#: ../src/dialogs/clonetiler.cpp:2599 +#: ../src/dialogs/clonetiler.cpp:2573 msgctxt "Clonetiler color lightness" msgid "L" msgstr "L" -#: ../src/dialogs/clonetiler.cpp:2600 +#: ../src/dialogs/clonetiler.cpp:2574 msgid "Pick the lightness of the color" msgstr "De helderheid van de kleur kiezen" -#: ../src/dialogs/clonetiler.cpp:2610 +#: ../src/dialogs/clonetiler.cpp:2584 msgid "2. Tweak the picked value:" msgstr "2. De geselecteerde eigenschap fijnafstemmen:" -#: ../src/dialogs/clonetiler.cpp:2620 +#: ../src/dialogs/clonetiler.cpp:2594 msgid "Gamma-correct:" msgstr "Gammacorrectie:" -#: ../src/dialogs/clonetiler.cpp:2624 +#: ../src/dialogs/clonetiler.cpp:2598 msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" msgstr "Het middengebied van de gekozen eigenschap verhogen (>0) of verlagen (<0)" -#: ../src/dialogs/clonetiler.cpp:2631 +#: ../src/dialogs/clonetiler.cpp:2605 msgid "Randomize:" msgstr "Willekeur:" -#: ../src/dialogs/clonetiler.cpp:2635 +#: ../src/dialogs/clonetiler.cpp:2609 msgid "Randomize the picked value by this percentage" msgstr "De geselecteerde eigenschap binnen dit percentage willekeurig aanpassen" -#: ../src/dialogs/clonetiler.cpp:2642 +#: ../src/dialogs/clonetiler.cpp:2616 msgid "Invert:" msgstr "Omdraaien:" -#: ../src/dialogs/clonetiler.cpp:2646 +#: ../src/dialogs/clonetiler.cpp:2620 msgid "Invert the picked value" msgstr "Draai de geselecteerde eigenschap om" -#: ../src/dialogs/clonetiler.cpp:2652 +#: ../src/dialogs/clonetiler.cpp:2626 msgid "3. Apply the value to the clones':" msgstr "3. De relatie tussen de eigenschap en de klonen:" -#: ../src/dialogs/clonetiler.cpp:2662 +#: ../src/dialogs/clonetiler.cpp:2636 msgid "Presence" msgstr "Aanwezigheid" -#: ../src/dialogs/clonetiler.cpp:2665 +#: ../src/dialogs/clonetiler.cpp:2639 msgid "Each clone is created with the probability determined by the picked value in that point" msgstr "De kans dat een kloon op een plek wordt gemaakt is afhankelijk van de waarde van de geselecteerde eigenschap op dat punt." -#: ../src/dialogs/clonetiler.cpp:2672 +#: ../src/dialogs/clonetiler.cpp:2646 msgid "Size" msgstr "Afmeting" -#: ../src/dialogs/clonetiler.cpp:2675 +#: ../src/dialogs/clonetiler.cpp:2649 msgid "Each clone's size is determined by the picked value in that point" msgstr "De grootte van een kloon is afhankelijk van de waarde van de geselecteerde eigenschap op dat punt" -#: ../src/dialogs/clonetiler.cpp:2685 +#: ../src/dialogs/clonetiler.cpp:2659 msgid "Each clone is painted by the picked color (the original must have unset fill or stroke)" msgstr "Klonen worden getekend in de geselecteerde kleur (werkt alleen als de kleur van de lijnen of de vulling van het origineel verwijderd is)" -#: ../src/dialogs/clonetiler.cpp:2695 +#: ../src/dialogs/clonetiler.cpp:2669 msgid "Each clone's opacity is determined by the picked value in that point" msgstr "De ondoorzichtigheid van een kloon is afhankelijk van de waarde van de geselecteerde eigenschap op dat punt" -#: ../src/dialogs/clonetiler.cpp:2722 +#: ../src/dialogs/clonetiler.cpp:2696 msgid "How many rows in the tiling" msgstr "Hoeveel rijen er betegeld moeten worden" -#: ../src/dialogs/clonetiler.cpp:2742 +#: ../src/dialogs/clonetiler.cpp:2716 msgid "How many columns in the tiling" msgstr "Hoeveel kolommen er betegeld moeten worden" -#: ../src/dialogs/clonetiler.cpp:2772 +#: ../src/dialogs/clonetiler.cpp:2746 msgid "Width of the rectangle to be filled" msgstr "Breedte van de rechthoek die gevuld moet worden" -#: ../src/dialogs/clonetiler.cpp:2797 +#: ../src/dialogs/clonetiler.cpp:2771 msgid "Height of the rectangle to be filled" msgstr "Hoogte van de rechthoek die gevuld moet worden" -#: ../src/dialogs/clonetiler.cpp:2812 +#: ../src/dialogs/clonetiler.cpp:2786 msgid "Rows, columns: " msgstr "Rijen, kolommen: " -#: ../src/dialogs/clonetiler.cpp:2813 +#: ../src/dialogs/clonetiler.cpp:2787 msgid "Create the specified number of rows and columns" msgstr "Het opgegeven aantal rijen en kolommen aanmaken" -#: ../src/dialogs/clonetiler.cpp:2822 +#: ../src/dialogs/clonetiler.cpp:2796 msgid "Width, height: " msgstr "Breedte, hoogte: " -#: ../src/dialogs/clonetiler.cpp:2823 +#: ../src/dialogs/clonetiler.cpp:2797 msgid "Fill the specified width and height with the tiling" msgstr "Vul een gebied met opgegeven breedte en hoogte met de betegeling" -#: ../src/dialogs/clonetiler.cpp:2839 +#: ../src/dialogs/clonetiler.cpp:2813 msgid "Use saved size and position of the tile" msgstr "De opgeslagen grootte en positie van de tegel gebruiken" -#: ../src/dialogs/clonetiler.cpp:2842 +#: ../src/dialogs/clonetiler.cpp:2816 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" msgstr "Doen alsof de grootte en positie van de tegel hetzelfde zijn als de laatste keer dat u er mee tegelde, in plaats van de huidige grootte en positie te gebruiken." -#: ../src/dialogs/clonetiler.cpp:2866 +#: ../src/dialogs/clonetiler.cpp:2840 msgid " _Create " msgstr " _Aanmaken " -#: ../src/dialogs/clonetiler.cpp:2868 +#: ../src/dialogs/clonetiler.cpp:2842 msgid "Create and tile the clones of the selection" msgstr "Maak klonen van de selectie en gebruik ze als betegeling" @@ -4500,28 +4539,28 @@ msgstr "Maak klonen van de selectie en gebruik ze als betegeling" #. 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/dialogs/clonetiler.cpp:2883 +#: ../src/dialogs/clonetiler.cpp:2857 msgid " _Unclump " msgstr " _Ontklonteren " -#: ../src/dialogs/clonetiler.cpp:2884 +#: ../src/dialogs/clonetiler.cpp:2858 msgid "Spread out clones to reduce clumping; can be applied repeatedly" msgstr "De klonen verspreiden om ze te ontklonteren; kan herhaaldelijk worden toegepast" -#: ../src/dialogs/clonetiler.cpp:2890 +#: ../src/dialogs/clonetiler.cpp:2864 msgid " Re_move " msgstr " Ver_wijderen " -#: ../src/dialogs/clonetiler.cpp:2891 +#: ../src/dialogs/clonetiler.cpp:2865 msgid "Remove existing tiled clones of the selected object (siblings only)" msgstr "Verwijder bestaande getegelde klonen van het geselecteerde object" -#: ../src/dialogs/clonetiler.cpp:2907 +#: ../src/dialogs/clonetiler.cpp:2881 msgid " R_eset " msgstr " _Beginwaarden " #. TRANSLATORS: "change" is a noun here -#: ../src/dialogs/clonetiler.cpp:2909 +#: ../src/dialogs/clonetiler.cpp:2883 msgid "Reset all shifts, scales, rotates, opacity and color changes in the dialog to zero" msgstr "Alle verplaatsingen, vergrotingen, rotaties en kleurveranderingen in het venster terugzetten op nul" @@ -4549,7 +4588,8 @@ msgid "Export area" msgstr "Exportgebied" #: ../src/dialogs/export.cpp:290 -#: ../src/widgets/toolbox.cpp:1677 +#: ../src/widgets/toolbox.cpp:1680 +#: ../src/widgets/toolbox.cpp:1688 #: ../share/extensions/gears.inx.h:7 msgid "Units:" msgstr "Eenheden:" @@ -4585,7 +4625,7 @@ msgstr "Bitmap-grootte" #: ../src/dialogs/export.cpp:487 #: ../src/live_effects/lpe-bendpath.cpp:56 #: ../src/live_effects/lpe-patternalongpath.cpp:64 -#: ../src/ui/dialog/transformation.cpp:88 +#: ../src/ui/dialog/transformation.cpp:87 #: ../src/ui/widget/page-sizer.cpp:232 msgid "_Width:" msgstr "B_reedte:" @@ -4600,14 +4640,14 @@ msgid "dp_i" msgstr "pp_i" #: ../src/dialogs/export.cpp:501 -#: ../src/ui/dialog/transformation.cpp:90 +#: ../src/ui/dialog/transformation.cpp:89 #: ../src/ui/widget/page-sizer.cpp:233 msgid "_Height:" msgstr "_Hoogte:" #: ../src/dialogs/export.cpp:512 -#: ../src/ui/dialog/inkscape-preferences.cpp:836 -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "dpi" msgstr "ppi" @@ -4787,7 +4827,7 @@ msgstr "Paden, lijnen en veellijnen doorzoeken" #: ../src/dialogs/find.cpp:604 #: ../src/ui/dialog/find.cpp:78 -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2340 msgid "Paths" msgstr "Paden" @@ -4858,9 +4898,9 @@ msgstr "Zoek objecten op tekstinhoud (exacte of gedeeltelijke overeenkomst)" #. Create the label for the object id #: ../src/dialogs/find.cpp:695 #: ../src/dialogs/item-properties.cpp:112 -#: ../src/dialogs/item-properties.cpp:326 -#: ../src/dialogs/item-properties.cpp:435 -#: ../src/dialogs/item-properties.cpp:442 +#: ../src/dialogs/item-properties.cpp:324 +#: ../src/dialogs/item-properties.cpp:433 +#: ../src/dialogs/item-properties.cpp:440 #: ../src/ui/dialog/find.cpp:64 msgid "_ID:" msgstr "_ID:" @@ -4958,98 +4998,99 @@ msgstr "Alle objecten selecteren met de hierboven ingevulde eigenschappen" msgid "The id= attribute (only letters, digits, and the characters .-_: allowed)" msgstr "Het 'id='-attribuut (alleen letters, cijfers en de tekens .-_: zijn toegestaan)" -#. Button for setting the object's id, label, title and description. -#: ../src/dialogs/item-properties.cpp:135 -#: ../src/verbs.cpp:2488 -#: ../src/verbs.cpp:2494 -msgid "_Set" -msgstr "In_stellen" - #. Create the label for the object label -#: ../src/dialogs/item-properties.cpp:144 +#: ../src/dialogs/item-properties.cpp:135 +#: ../src/ui/dialog/guides.cpp:45 msgid "_Label:" msgstr "_Label:" -#: ../src/dialogs/item-properties.cpp:153 +#: ../src/dialogs/item-properties.cpp:144 msgid "A freeform label for the object" msgstr "Een vrij te kiezen label" #. Create the label for the object title -#: ../src/dialogs/item-properties.cpp:165 +#: ../src/dialogs/item-properties.cpp:156 msgid "_Title:" msgstr "_Titel:" #. Create the frame for the object description -#: ../src/dialogs/item-properties.cpp:183 +#: ../src/dialogs/item-properties.cpp:174 msgid "_Description" msgstr "_Beschrijving" #. Hide -#: ../src/dialogs/item-properties.cpp:214 +#: ../src/dialogs/item-properties.cpp:205 msgid "_Hide" msgstr "_Verbergen" -#: ../src/dialogs/item-properties.cpp:215 +#: ../src/dialogs/item-properties.cpp:206 msgid "Check to make the object invisible" msgstr "Selecteer dit om het object onzichtbaar te maken" +#. Button for setting the object's id, label, title and description. +#: ../src/dialogs/item-properties.cpp:214 +#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2494 +msgid "_Set" +msgstr "In_stellen" + #. Lock #. TRANSLATORS: "Lock" is a verb here -#: ../src/dialogs/item-properties.cpp:224 +#: ../src/dialogs/item-properties.cpp:222 msgid "L_ock" msgstr "Ver_grendelen" -#: ../src/dialogs/item-properties.cpp:225 +#: ../src/dialogs/item-properties.cpp:223 msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "Selecteer dit om het object ongevoelig te maken (niet-selecteerbaar met de muis)" #. Create the frame for interactivity options -#: ../src/dialogs/item-properties.cpp:235 +#: ../src/dialogs/item-properties.cpp:233 msgid "_Interactivity" msgstr "I_nteractiviteit" -#: ../src/dialogs/item-properties.cpp:309 -#: ../src/dialogs/item-properties.cpp:316 +#: ../src/dialogs/item-properties.cpp:307 +#: ../src/dialogs/item-properties.cpp:314 msgid "Ref" msgstr "Referentie" -#: ../src/dialogs/item-properties.cpp:394 +#: ../src/dialogs/item-properties.cpp:392 msgid "Lock object" msgstr "Object vergrendelen" -#: ../src/dialogs/item-properties.cpp:394 +#: ../src/dialogs/item-properties.cpp:392 msgid "Unlock object" msgstr "Object ontgrendelen" -#: ../src/dialogs/item-properties.cpp:413 +#: ../src/dialogs/item-properties.cpp:411 msgid "Hide object" msgstr "Object verbergen" -#: ../src/dialogs/item-properties.cpp:413 +#: ../src/dialogs/item-properties.cpp:411 msgid "Unhide object" msgstr "Object weergeven" -#: ../src/dialogs/item-properties.cpp:437 +#: ../src/dialogs/item-properties.cpp:435 msgid "Id invalid! " msgstr "Ongeldig ID. " -#: ../src/dialogs/item-properties.cpp:439 +#: ../src/dialogs/item-properties.cpp:437 msgid "Id exists! " msgstr "ID bestaat al. " -#: ../src/dialogs/item-properties.cpp:446 +#: ../src/dialogs/item-properties.cpp:444 msgid "Set object ID" msgstr "Object-ID instellen" -#: ../src/dialogs/item-properties.cpp:461 +#: ../src/dialogs/item-properties.cpp:459 msgid "Set object label" msgstr "Objectlabel instellen" -#: ../src/dialogs/item-properties.cpp:469 +#: ../src/dialogs/item-properties.cpp:467 msgid "Set object title" msgstr "Objecttitel instellen" -#: ../src/dialogs/item-properties.cpp:479 +#: ../src/dialogs/item-properties.cpp:477 msgid "Set object description" msgstr "Objectomschrijving instellen" @@ -5114,19 +5155,17 @@ msgstr "URL:" #: ../src/dialogs/object-attributes.cpp:52 #: ../src/dialogs/object-attributes.cpp:60 -#: ../src/ui/dialog/guides.cpp:43 #: ../src/ui/dialog/tile.cpp:618 #: ../src/widgets/desktop-widget.cpp:514 -#: ../src/widgets/toolbox.cpp:1563 +#: ../src/widgets/toolbox.cpp:1565 msgid "X:" msgstr "X:" #: ../src/dialogs/object-attributes.cpp:53 #: ../src/dialogs/object-attributes.cpp:61 -#: ../src/ui/dialog/guides.cpp:44 #: ../src/ui/dialog/tile.cpp:619 #: ../src/widgets/desktop-widget.cpp:517 -#: ../src/widgets/toolbox.cpp:1581 +#: ../src/widgets/toolbox.cpp:1583 msgid "Y:" msgstr "Y:" @@ -5137,10 +5176,10 @@ msgstr "Y:" #: ../src/extension/internal/bitmap/sample.cpp:40 #: ../src/extension/internal/bluredge.cpp:136 #: ../src/extension/internal/filter/abc.h:574 -#: ../src/widgets/toolbox.cpp:4347 -#: ../src/widgets/toolbox.cpp:4667 -#: ../src/widgets/toolbox.cpp:5162 -#: ../src/widgets/toolbox.cpp:6224 +#: ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 +#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:6266 #: ../share/extensions/foldablebox.inx.h:9 msgid "Width:" msgstr "Breedte:" @@ -5244,61 +5283,71 @@ msgstr "_Begin" msgid "Start the check" msgstr "De controle beginnen" -#: ../src/dialogs/text-edit.cpp:204 +#: ../src/dialogs/text-edit.cpp:202 #: ../src/ui/dialog/svg-fonts-dialog.cpp:886 msgid "_Font" msgstr "_Lettertype" -#: ../src/dialogs/text-edit.cpp:227 +#: ../src/dialogs/text-edit.cpp:225 #: ../share/extensions/svgcalendar.inx.h:10 msgid "Layout" msgstr "Lay-out" -#: ../src/dialogs/text-edit.cpp:241 +#: ../src/dialogs/text-edit.cpp:239 msgid "Align lines left" msgstr "Regels links uitlijnen" #. TRANSLATORS: `Center' here is a verb. -#: ../src/dialogs/text-edit.cpp:256 +#: ../src/dialogs/text-edit.cpp:254 msgid "Center lines" msgstr "Regels centreren" -#: ../src/dialogs/text-edit.cpp:270 +#: ../src/dialogs/text-edit.cpp:268 msgid "Align lines right" msgstr "Regels rechts uitlijnen" -#: ../src/dialogs/text-edit.cpp:284 +#: ../src/dialogs/text-edit.cpp:282 msgid "Justify lines" msgstr "Lijnen uitvullen" -#: ../src/dialogs/text-edit.cpp:306 -#: ../src/widgets/toolbox.cpp:7713 +#: ../src/dialogs/text-edit.cpp:304 +#: ../src/widgets/toolbox.cpp:7755 msgid "Horizontal text" msgstr "Horizontale tekst" -#: ../src/dialogs/text-edit.cpp:320 -#: ../src/widgets/toolbox.cpp:7720 +#: ../src/dialogs/text-edit.cpp:318 +#: ../src/widgets/toolbox.cpp:7762 msgid "Vertical text" msgstr "Verticale tekst" -#: ../src/dialogs/text-edit.cpp:335 +#: ../src/dialogs/text-edit.cpp:333 msgid "Line spacing:" msgstr "Regelafstand:" -#: ../src/dialogs/text-edit.cpp:380 -#: ../src/menus-skeleton.h:236 +#: ../src/dialogs/text-edit.cpp:389 +#: ../src/menus-skeleton.h:237 msgid "_Text" msgstr "_Tekst" -#: ../src/dialogs/text-edit.cpp:427 +#: ../src/dialogs/text-edit.cpp:436 msgid "Set as _default" msgstr "_Instellen als standaard" -#: ../src/dialogs/text-edit.cpp:678 +#: ../src/dialogs/text-edit.cpp:695 #: ../src/text-context.cpp:1518 msgid "Set text style" msgstr "Tekststijl instellen" +#. TRANSLATORS: Test string used in text and font dialog (when no +#. * text has been entered) to get a preview of the font. Choose +#. * some representative characters that users of your locale will be +#. * interested in. +#: ../src/dialogs/text-edit.cpp:732 +#: ../src/dialogs/text-edit.cpp:868 +#: ../src/dialogs/text-edit.cpp:921 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "AaBbCcIiMmPpQqWw(12369)€£$!?.;/@" + #: ../src/dialogs/xml-tree.cpp:157 msgid "Click to select nodes, drag to rearrange." msgstr "Klik om een item te selecteren, sleep om het te verplaatsen." @@ -5316,258 +5365,258 @@ msgstr "Attribuut %s is geselecteerd. Druk op Ctrl+Enter om wijzig msgid "Drag to reorder nodes" msgstr "Sleep om de items te herschikken" -#: ../src/dialogs/xml-tree.cpp:287 +#: ../src/dialogs/xml-tree.cpp:284 msgid "New element node" msgstr "Nieuw elementitem" -#: ../src/dialogs/xml-tree.cpp:309 +#: ../src/dialogs/xml-tree.cpp:306 msgid "New text node" msgstr "Nieuw tekstitem" -#: ../src/dialogs/xml-tree.cpp:330 -#: ../src/dialogs/xml-tree.cpp:1416 +#: ../src/dialogs/xml-tree.cpp:327 +#: ../src/dialogs/xml-tree.cpp:1428 msgid "Duplicate node" msgstr "Item dupliceren" -#: ../src/dialogs/xml-tree.cpp:351 +#: ../src/dialogs/xml-tree.cpp:349 msgid "nodeAsInXMLdialogTooltip|Delete node" msgstr "Item verwijderen" #: ../src/dialogs/xml-tree.cpp:367 -#: ../src/dialogs/xml-tree.cpp:1578 +#: ../src/dialogs/xml-tree.cpp:1590 msgid "Unindent node" msgstr "Item minder inspringen" -#: ../src/dialogs/xml-tree.cpp:382 -#: ../src/dialogs/xml-tree.cpp:1557 +#: ../src/dialogs/xml-tree.cpp:384 +#: ../src/dialogs/xml-tree.cpp:1569 msgid "Indent node" msgstr "Item meer inspringen" -#: ../src/dialogs/xml-tree.cpp:394 -#: ../src/dialogs/xml-tree.cpp:1510 +#: ../src/dialogs/xml-tree.cpp:398 +#: ../src/dialogs/xml-tree.cpp:1522 msgid "Raise node" msgstr "Item omhoog brengen" -#: ../src/dialogs/xml-tree.cpp:406 -#: ../src/dialogs/xml-tree.cpp:1527 +#: ../src/dialogs/xml-tree.cpp:412 +#: ../src/dialogs/xml-tree.cpp:1539 msgid "Lower node" msgstr "Item omlaag brengen" -#: ../src/dialogs/xml-tree.cpp:451 -#: ../src/dialogs/xml-tree.cpp:1451 +#: ../src/dialogs/xml-tree.cpp:459 +#: ../src/dialogs/xml-tree.cpp:1463 msgid "Delete attribute" msgstr "Attribuut verwijderen" #. TRANSLATORS: "Attribute" is a noun here -#: ../src/dialogs/xml-tree.cpp:496 +#: ../src/dialogs/xml-tree.cpp:504 msgid "Attribute name" msgstr "Attribuutnaam" #. TRANSLATORS: "Set" is a verb here -#: ../src/dialogs/xml-tree.cpp:516 -#: ../src/widgets/sp-attribute-widget.cpp:159 -#: ../src/widgets/sp-attribute-widget.cpp:765 +#: ../src/dialogs/xml-tree.cpp:524 +#: ../src/widgets/sp-attribute-widget.cpp:157 +#: ../src/widgets/sp-attribute-widget.cpp:759 msgid "Set attribute" msgstr "Attribuut instellen" #. TRANSLATORS: "Set" is a verb here -#: ../src/dialogs/xml-tree.cpp:518 +#: ../src/dialogs/xml-tree.cpp:526 msgid "Set" msgstr "Instellen" #. TRANSLATORS: "Attribute" is a noun here -#: ../src/dialogs/xml-tree.cpp:541 +#: ../src/dialogs/xml-tree.cpp:549 msgid "Attribute value" msgstr "Attribuutwaarde" -#: ../src/dialogs/xml-tree.cpp:884 +#: ../src/dialogs/xml-tree.cpp:896 msgid "Drag XML subtree" msgstr "Versleep een XML-subboom" -#: ../src/dialogs/xml-tree.cpp:1319 +#: ../src/dialogs/xml-tree.cpp:1331 msgid "New element node..." msgstr "Nieuw item toevoegen..." -#: ../src/dialogs/xml-tree.cpp:1341 +#: ../src/dialogs/xml-tree.cpp:1353 msgid "Cancel" msgstr "Annuleren" -#: ../src/dialogs/xml-tree.cpp:1348 +#: ../src/dialogs/xml-tree.cpp:1360 msgid "Create" msgstr "Aanmaken" -#: ../src/dialogs/xml-tree.cpp:1382 +#: ../src/dialogs/xml-tree.cpp:1394 msgid "Create new element node" msgstr "Nieuw item maken" -#: ../src/dialogs/xml-tree.cpp:1398 +#: ../src/dialogs/xml-tree.cpp:1410 msgid "Create new text node" msgstr "Nieuw tekstitem maken" -#: ../src/dialogs/xml-tree.cpp:1433 +#: ../src/dialogs/xml-tree.cpp:1445 msgid "nodeAsInXMLinHistoryDialog|Delete node" msgstr "Item verwijderen" -#: ../src/dialogs/xml-tree.cpp:1480 +#: ../src/dialogs/xml-tree.cpp:1492 msgid "Change attribute" msgstr "Attribuut instellen" -#: ../src/display/canvas-axonomgrid.cpp:393 -#: ../src/display/canvas-grid.cpp:671 +#: ../src/display/canvas-axonomgrid.cpp:356 +#: ../src/display/canvas-grid.cpp:674 msgid "Grid _units:" msgstr "Raster_eenheid:" -#: ../src/display/canvas-axonomgrid.cpp:395 -#: ../src/display/canvas-grid.cpp:673 +#: ../src/display/canvas-axonomgrid.cpp:358 +#: ../src/display/canvas-grid.cpp:676 msgid "_Origin X:" msgstr "X-_oorsprong:" -#: ../src/display/canvas-axonomgrid.cpp:395 -#: ../src/display/canvas-grid.cpp:673 -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/display/canvas-axonomgrid.cpp:358 +#: ../src/display/canvas-grid.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "X coordinate of grid origin" msgstr "X-coördinaat vanaf de rasteroorsprong" -#: ../src/display/canvas-axonomgrid.cpp:397 -#: ../src/display/canvas-grid.cpp:675 +#: ../src/display/canvas-axonomgrid.cpp:360 +#: ../src/display/canvas-grid.cpp:678 msgid "O_rigin Y:" msgstr "Y-oo_rsprong:" -#: ../src/display/canvas-axonomgrid.cpp:397 -#: ../src/display/canvas-grid.cpp:675 -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/display/canvas-axonomgrid.cpp:360 +#: ../src/display/canvas-grid.cpp:678 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Y coordinate of grid origin" msgstr "Y-coördinaat vanaf de rasteroorsprong" -#: ../src/display/canvas-axonomgrid.cpp:399 -#: ../src/display/canvas-grid.cpp:679 +#: ../src/display/canvas-axonomgrid.cpp:362 +#: ../src/display/canvas-grid.cpp:682 msgid "Spacing _Y:" msgstr "_Y-tussenafstand:" -#: ../src/display/canvas-axonomgrid.cpp:399 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/display/canvas-axonomgrid.cpp:362 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Base length of z-axis" msgstr "Basislengte van z-as" -#: ../src/display/canvas-axonomgrid.cpp:401 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 -#: ../src/widgets/toolbox.cpp:3660 +#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle X:" msgstr "X-hoek:" -#: ../src/display/canvas-axonomgrid.cpp:401 -#: ../src/ui/dialog/inkscape-preferences.cpp:1073 +#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1074 msgid "Angle of x-axis" msgstr "Hoek van de x-as" -#: ../src/display/canvas-axonomgrid.cpp:403 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 -#: ../src/widgets/toolbox.cpp:3739 +#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle Z:" msgstr "Z-hoek:" -#: ../src/display/canvas-axonomgrid.cpp:403 -#: ../src/ui/dialog/inkscape-preferences.cpp:1074 +#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:1075 msgid "Angle of z-axis" msgstr "Hoek van de z-as" -#: ../src/display/canvas-axonomgrid.cpp:407 -#: ../src/display/canvas-grid.cpp:683 +#: ../src/display/canvas-axonomgrid.cpp:370 +#: ../src/display/canvas-grid.cpp:686 msgid "Grid line _color:" msgstr "Kleur rasterlijn:" -#: ../src/display/canvas-axonomgrid.cpp:407 -#: ../src/display/canvas-grid.cpp:683 +#: ../src/display/canvas-axonomgrid.cpp:370 +#: ../src/display/canvas-grid.cpp:686 msgid "Grid line color" msgstr "Kleur hulplijnen" -#: ../src/display/canvas-axonomgrid.cpp:407 -#: ../src/display/canvas-grid.cpp:683 +#: ../src/display/canvas-axonomgrid.cpp:370 +#: ../src/display/canvas-grid.cpp:686 msgid "Color of grid lines" msgstr "Kleur van de rasterlijnen" -#: ../src/display/canvas-axonomgrid.cpp:412 -#: ../src/display/canvas-grid.cpp:688 +#: ../src/display/canvas-axonomgrid.cpp:375 +#: ../src/display/canvas-grid.cpp:691 msgid "Ma_jor grid line color:" msgstr "Kleur _hoofdrasterlijnen:" -#: ../src/display/canvas-axonomgrid.cpp:412 -#: ../src/display/canvas-grid.cpp:688 +#: ../src/display/canvas-axonomgrid.cpp:375 +#: ../src/display/canvas-grid.cpp:691 msgid "Major grid line color" msgstr "Kleur van hoofdrasterlijnen" -#: ../src/display/canvas-axonomgrid.cpp:413 -#: ../src/display/canvas-grid.cpp:689 +#: ../src/display/canvas-axonomgrid.cpp:376 +#: ../src/display/canvas-grid.cpp:692 msgid "Color of the major (highlighted) grid lines" msgstr "Kleur van de (geselecteerde) hoofdrasterlijnen" -#: ../src/display/canvas-axonomgrid.cpp:417 -#: ../src/display/canvas-grid.cpp:693 +#: ../src/display/canvas-axonomgrid.cpp:380 +#: ../src/display/canvas-grid.cpp:696 msgid "_Major grid line every:" msgstr "Een hoofdr_asterlijn elke:" -#: ../src/display/canvas-axonomgrid.cpp:417 -#: ../src/display/canvas-grid.cpp:693 +#: ../src/display/canvas-axonomgrid.cpp:380 +#: ../src/display/canvas-grid.cpp:696 msgid "lines" msgstr "rasterlijnen" -#: ../src/display/canvas-grid.cpp:40 +#: ../src/display/canvas-grid.cpp:41 msgid "Rectangular grid" msgstr "Rechthoekig raster" -#: ../src/display/canvas-grid.cpp:41 +#: ../src/display/canvas-grid.cpp:42 msgid "Axonometric grid" msgstr "Axonometrisch raster" -#: ../src/display/canvas-grid.cpp:259 +#: ../src/display/canvas-grid.cpp:262 msgid "Create new grid" msgstr "Nieuw raster maken" -#: ../src/display/canvas-grid.cpp:325 +#: ../src/display/canvas-grid.cpp:328 msgid "_Enabled" msgstr "_Actief" -#: ../src/display/canvas-grid.cpp:326 +#: ../src/display/canvas-grid.cpp:329 msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids." msgstr "Bepaalt of er aan dit raster gekleefd moet worden of niet. Kan ingeschakeld zijn voor onzichtbare rasters." -#: ../src/display/canvas-grid.cpp:330 +#: ../src/display/canvas-grid.cpp:333 msgid "Snap to visible _grid lines only" msgstr "Alleen aan zichtbare _rasterlijnen kleven" -#: ../src/display/canvas-grid.cpp:331 +#: ../src/display/canvas-grid.cpp:334 msgid "When zoomed out, not all grid lines will be displayed. Only the visible ones will be snapped to" msgstr "Bij uitzoomen worden niet alle rasterlijnen getoond. Er wordt alleen gekleefd aan de zichtbare rasterlijnen" -#: ../src/display/canvas-grid.cpp:335 +#: ../src/display/canvas-grid.cpp:338 msgid "_Visible" msgstr "_Zichtbaar" -#: ../src/display/canvas-grid.cpp:336 +#: ../src/display/canvas-grid.cpp:339 msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids." msgstr "Bepaalt of het raster weergegven moet worden of niet. Objecten worden ook aan onzichtbare rasters gekleefd." -#: ../src/display/canvas-grid.cpp:677 +#: ../src/display/canvas-grid.cpp:680 msgid "Spacing _X:" msgstr "_X-tussenafstand:" -#: ../src/display/canvas-grid.cpp:677 -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/display/canvas-grid.cpp:680 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Distance between vertical grid lines" msgstr "Afstand tussen verticale rasterlijnen" -#: ../src/display/canvas-grid.cpp:679 -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 +#: ../src/display/canvas-grid.cpp:682 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 msgid "Distance between horizontal grid lines" msgstr "Afstand tussen horizontale rasterlijnen" -#: ../src/display/canvas-grid.cpp:712 +#: ../src/display/canvas-grid.cpp:715 msgid "_Show dots instead of lines" msgstr "_Punten weergeven in plaats van lijnen" -#: ../src/display/canvas-grid.cpp:713 +#: ../src/display/canvas-grid.cpp:716 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "Indien aangevinkt, worden punten op de rasterkruispunten weergegeven in plaats van rasterlijnen." @@ -5668,13 +5717,13 @@ msgid "quadrant point" msgstr "punt kwadrant" #: ../src/display/snap-indicator.cpp:142 -msgid "center" -msgstr "midden" - -#: ../src/display/snap-indicator.cpp:145 msgid "corner" msgstr "hoek" +#: ../src/display/snap-indicator.cpp:145 +msgid "text anchor" +msgstr "" + #: ../src/display/snap-indicator.cpp:148 msgid "text baseline" msgstr "grondlijn tekst" @@ -5746,22 +5795,19 @@ msgid "Quadrant point" msgstr "Punt kwadrant" #: ../src/display/snap-indicator.cpp:210 -msgid "Center" -msgstr "Midden" - -#: ../src/display/snap-indicator.cpp:213 msgid "Corner" msgstr "Hoek" -#: ../src/display/snap-indicator.cpp:216 -msgid "Text baseline" -msgstr "Grondlijn tekst" +#: ../src/display/snap-indicator.cpp:213 +#, fuzzy +msgid "Text anchor" +msgstr "Lettertype tekst" -#: ../src/display/snap-indicator.cpp:219 +#: ../src/display/snap-indicator.cpp:216 msgid "Multiple of grid spacing" msgstr "Veelvoud van rasterafstand" -#: ../src/display/snap-indicator.cpp:250 +#: ../src/display/snap-indicator.cpp:247 msgid " to " msgstr " met " @@ -5781,80 +5827,80 @@ msgid "Unnamed document %d" msgstr "Naamloos document %d" #. We hit green anchor, closing Green-Blue-Red -#: ../src/draw-context.cpp:561 +#: ../src/draw-context.cpp:562 msgid "Path is closed." msgstr "Het pad is gesloten." #. We hit bot start and end of single curve, closing paths -#: ../src/draw-context.cpp:576 +#: ../src/draw-context.cpp:577 msgid "Closing path." msgstr "Het pad wordt gesloten." -#: ../src/draw-context.cpp:686 +#: ../src/draw-context.cpp:687 msgid "Draw path" msgstr "Pad tekenen" -#: ../src/draw-context.cpp:847 +#: ../src/draw-context.cpp:848 msgid "Creating single dot" msgstr "Maken van één stip" -#: ../src/draw-context.cpp:848 +#: ../src/draw-context.cpp:849 msgid "Create single dot" msgstr "Enkele stip maken" #. 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/dropper-context.cpp:313 +#: ../src/dropper-context.cpp:289 #, c-format msgid " alpha %.3g" msgstr " alfa %.3g" #. where the color is picked, to show in the statusbar -#: ../src/dropper-context.cpp:315 +#: ../src/dropper-context.cpp:291 #, c-format msgid ", averaged with radius %d" msgstr ", het gemiddelde in een cirkel met straal %d" -#: ../src/dropper-context.cpp:315 +#: ../src/dropper-context.cpp:291 #, c-format msgid " under cursor" msgstr " onder de cursor" #. message, to show in the statusbar -#: ../src/dropper-context.cpp:317 +#: ../src/dropper-context.cpp:293 msgid "Release mouse to set color." msgstr "Laat de muisknop los om de kleur in te stellen." -#: ../src/dropper-context.cpp:317 +#: ../src/dropper-context.cpp:293 #: ../src/tools-switch.cpp:223 msgid "Click to set fill, Shift+click to set stroke; drag to average color in area; with Alt to pick inverse color; Ctrl+C to copy the color under mouse to clipboard" msgstr "Klik om de vulkleur te kiezen, Shift+klik voor lijnkleur, sleep voor gemiddelde kleur van een gebied, Alt voor geïnverteerde kleur, Ctrl+C om kleur naar het klembord te kopiëren." -#: ../src/dropper-context.cpp:355 +#: ../src/dropper-context.cpp:331 msgid "Set picked color" msgstr "Gekozen kleur instellen" -#: ../src/dyna-draw-context.cpp:617 +#: ../src/dyna-draw-context.cpp:618 msgid "Guide path selected; start drawing along the guide with Ctrl" msgstr "Hulplijn is geselecteerd; begin met Ctrl langs de hulplijn te tekenen" -#: ../src/dyna-draw-context.cpp:619 +#: ../src/dyna-draw-context.cpp:620 msgid "Select a guide path to track with Ctrl" msgstr "Selecteer een hulplijn om met Ctrl te volgen" -#: ../src/dyna-draw-context.cpp:754 +#: ../src/dyna-draw-context.cpp:755 msgid "Tracking: connection to guide path lost!" msgstr "Volgen: connectie met hulplijn is verloren gegaan!" -#: ../src/dyna-draw-context.cpp:754 +#: ../src/dyna-draw-context.cpp:755 msgid "Tracking a guide path" msgstr "Volgen van hulplijn" -#: ../src/dyna-draw-context.cpp:757 +#: ../src/dyna-draw-context.cpp:758 msgid "Drawing a calligraphic stroke" msgstr "Tekenen van een kalligrafische lijn" -#: ../src/dyna-draw-context.cpp:1046 +#: ../src/dyna-draw-context.cpp:1047 msgid "Draw calligraphic stroke" msgstr "Kalligrafische lijn tekenen" @@ -5877,13 +5923,13 @@ msgstr "[Onveranderd]" #. Edit #: ../src/event-log.cpp:264 #: ../src/event-log.cpp:267 -#: ../src/verbs.cpp:2278 +#: ../src/verbs.cpp:2276 msgid "_Undo" msgstr "_Ongedaan maken" #: ../src/event-log.cpp:274 #: ../src/event-log.cpp:278 -#: ../src/verbs.cpp:2280 +#: ../src/verbs.cpp:2278 msgid "_Redo" msgstr "Opn_ieuw" @@ -6001,15 +6047,15 @@ msgstr "Uitgeschakeld" 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 this extension." msgstr "Er is momenteel geen help beschikbaar voor deze uitbreiding. Kijk aub. op de Inkscape website of vraag op de mailinglijsten indien je vragen hebt over deze uitbreiding." -#: ../src/extension/implementation/script.cpp:989 +#: ../src/extension/implementation/script.cpp:990 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 expected." msgstr "Inkscape heeft extra informatie ontvangen van het script dat was aangeroepen. Het script gaf geen foutmelding, maar dit zou kunnen betekenen dat de resultaten anders zijn dan verwacht." -#: ../src/extension/init.cpp:281 +#: ../src/extension/init.cpp:279 msgid "Null external module directory name. Modules will not be loaded." msgstr "Geen mapnaam gevonden voor de uitbreidingen. De uitbreidingen worden niet geladen." -#: ../src/extension/init.cpp:295 +#: ../src/extension/init.cpp:293 #: ../src/extension/internal/filter/filter-file.cpp:58 #, c-format msgid "Modules directory (%s) is unavailable. External modules in that directory will not be loaded." @@ -6220,7 +6266,7 @@ msgstr "Palet verdraaien" #: ../src/extension/internal/bitmap/cycleColormap.cpp:38 #: ../src/extension/internal/bitmap/spread.cpp:38 #: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -#: ../src/widgets/toolbox.cpp:4759 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount:" msgstr "Aantal:" @@ -6380,7 +6426,7 @@ msgstr "Geselecteerde bitmap(s) stileren, zodat ze eruit zien als een olieverfsc #: ../src/extension/internal/bitmap/opacity.cpp:39 #: ../src/ui/dialog/filter-effects-dialog.cpp:2240 -#: ../src/widgets/toolbox.cpp:5754 +#: ../src/widgets/toolbox.cpp:5796 msgid "Opacity:" msgstr "Ondoorzichtigheid:" @@ -6481,11 +6527,11 @@ msgstr "Drempelwaarde" #: ../src/extension/internal/bitmap/threshold.cpp:39 #: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 #: ../src/ui/dialog/tracedialog.cpp:420 #: ../src/ui/dialog/tracedialog.cpp:453 #: ../src/ui/dialog/tracedialog.cpp:596 -#: ../src/widgets/toolbox.cpp:8497 +#: ../src/widgets/toolbox.cpp:8539 msgid "Threshold:" msgstr "Grenswaarde:" @@ -6566,8 +6612,8 @@ msgstr "PostScript niveau 2" #: ../src/extension/internal/cairo-ps-out.cpp:325 #: ../src/extension/internal/cairo-ps-out.cpp:363 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 -#: ../src/extension/internal/emf-win32-inout.cpp:2556 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +#: ../src/extension/internal/emf-win32-inout.cpp:2511 msgid "Convert texts to paths" msgstr "Tekst naar paden omzetten" @@ -6577,31 +6623,31 @@ msgstr "PS+LaTeX: tekst in PS negeren en LaTeX-bestand maken" #: ../src/extension/internal/cairo-ps-out.cpp:327 #: ../src/extension/internal/cairo-ps-out.cpp:365 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 msgid "Rasterize filter effects" msgstr "SVG-filtereffecten rasteriseren" #: ../src/extension/internal/cairo-ps-out.cpp:328 #: ../src/extension/internal/cairo-ps-out.cpp:366 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 msgid "Resolution for rasterization (dpi):" msgstr "Resolutie voor rasteriseren (ppi):" #: ../src/extension/internal/cairo-ps-out.cpp:329 #: ../src/extension/internal/cairo-ps-out.cpp:367 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 msgid "Export area is drawing" msgstr "Het geëxporteerde gebied is de tekening" #: ../src/extension/internal/cairo-ps-out.cpp:330 #: ../src/extension/internal/cairo-ps-out.cpp:368 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 msgid "Export area is page" msgstr "Het geëxporteerde gebied is de pagina" #: ../src/extension/internal/cairo-ps-out.cpp:331 #: ../src/extension/internal/cairo-ps-out.cpp:369 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 msgid "Limit export to the object with ID:" msgstr "Export limiteren tot het object met ID:" @@ -6632,55 +6678,55 @@ msgstr "Encapsulated Postscript (*.eps)" msgid "Encapsulated PostScript File" msgstr "Encapsulated Postscript File" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:242 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 msgid "Restrict to PDF version:" msgstr "Beperken tot PDF-versie:" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 msgid "PDF 1.5" msgstr "PDF 1.5" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 msgid "PDF 1.4" msgstr "PDF 1.4" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:249 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" msgstr "PDF+LaTeX: tekst in PDF negeren en LaTeX-bestand maken" -#: ../src/extension/internal/emf-win32-inout.cpp:2526 +#: ../src/extension/internal/emf-win32-inout.cpp:2481 msgid "EMF Input" msgstr "EMF-invoer" -#: ../src/extension/internal/emf-win32-inout.cpp:2531 +#: ../src/extension/internal/emf-win32-inout.cpp:2486 msgid "Enhanced Metafiles (*.emf)" msgstr "Enhanced Metafiles (*.emf)" -#: ../src/extension/internal/emf-win32-inout.cpp:2532 +#: ../src/extension/internal/emf-win32-inout.cpp:2487 msgid "Enhanced Metafiles" msgstr "Enhanced Metafiles" -#: ../src/extension/internal/emf-win32-inout.cpp:2540 +#: ../src/extension/internal/emf-win32-inout.cpp:2495 msgid "WMF Input" msgstr "WMF-invoer" -#: ../src/extension/internal/emf-win32-inout.cpp:2545 +#: ../src/extension/internal/emf-win32-inout.cpp:2500 msgid "Windows Metafiles (*.wmf)" msgstr "Windows Metafiles (*.wmf)" -#: ../src/extension/internal/emf-win32-inout.cpp:2546 +#: ../src/extension/internal/emf-win32-inout.cpp:2501 msgid "Windows Metafiles" msgstr "Windows Metafiles" -#: ../src/extension/internal/emf-win32-inout.cpp:2554 +#: ../src/extension/internal/emf-win32-inout.cpp:2509 msgid "EMF Output" msgstr "EMF-uitvoer" -#: ../src/extension/internal/emf-win32-inout.cpp:2560 +#: ../src/extension/internal/emf-win32-inout.cpp:2515 msgid "Enhanced Metafile (*.emf)" msgstr "Enhanced Metafile (*.emf)" -#: ../src/extension/internal/emf-win32-inout.cpp:2561 +#: ../src/extension/internal/emf-win32-inout.cpp:2516 msgid "Enhanced Metafile" msgstr "Enhanced Metafile" @@ -6726,9 +6772,11 @@ msgstr "Vertical vervaging:" #: ../src/extension/internal/filter/experimental.h:723 #: ../src/extension/internal/filter/filter-file.cpp:150 #: ../src/extension/internal/filter/filter.cpp:216 +#: ../src/extension/internal/filter/image.h:61 #: ../src/extension/internal/filter/morphology.h:61 +#: ../src/extension/internal/filter/shadows.h:76 #: ../src/extension/internal/filter/snow.h:38 -#: ../src/ui/dialog/inkscape-preferences.cpp:801 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 msgid "Filters" msgstr "Filters" @@ -6758,7 +6806,9 @@ msgstr "Filters" #: ../src/extension/internal/filter/experimental.h:516 #: ../src/extension/internal/filter/experimental.h:627 #: ../src/extension/internal/filter/experimental.h:724 +#: ../src/extension/internal/filter/image.h:62 #: ../src/extension/internal/filter/morphology.h:62 +#: ../src/extension/internal/filter/shadows.h:77 msgid "Experimental" msgstr "Experimenteel" @@ -6818,7 +6868,8 @@ msgstr "Azimut (°):" #: ../src/extension/internal/filter/abc.h:240 #: ../src/extension/internal/filter/abc.h:378 #: ../src/extension/internal/filter/abc.h:818 -msgid "Lightning color" +#, fuzzy +msgid "Lighting color" msgstr "Belichtingskleur" #: ../src/extension/internal/filter/abc.h:311 @@ -6979,7 +7030,7 @@ msgstr "Vermenigvuldigen" #: ../src/extension/internal/filter/color.h:784 #: ../src/extension/internal/filter/color.h:797 #: ../src/filter-enums.cpp:51 -#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:597 msgid "Normal" msgstr "Normaal" @@ -7118,7 +7169,7 @@ msgstr "Transparant" #: ../src/extension/internal/filter/color.h:468 msgid "Customize greyscale components" -msgstr "" +msgstr "Grijswaarden aanpassen" #: ../src/extension/internal/filter/color.h:536 msgid "Lightness, custom (Color)" @@ -7176,11 +7227,11 @@ msgstr "Tint verbeteren" #: ../src/extension/internal/filter/color.h:786 msgid "Radiation" -msgstr "" +msgstr "Straling" #: ../src/extension/internal/filter/color.h:787 msgid "Hue to background" -msgstr "" +msgstr "Tint naar achtergrond" #: ../src/extension/internal/filter/color.h:789 msgid "Global blend:" @@ -7192,7 +7243,7 @@ msgstr "Gloed:" #: ../src/extension/internal/filter/color.h:796 msgid "Glow blend:" -msgstr "Mengen gloed" +msgstr "Mengen gloed:" #: ../src/extension/internal/filter/color.h:801 msgid "Local light:" @@ -7212,6 +7263,7 @@ msgstr "Slagschaduw" #: ../src/extension/internal/filter/drop-shadow.h:37 #: ../src/extension/internal/filter/drop-shadow.h:97 +#: ../src/extension/internal/filter/shadows.h:59 msgid "Blur radius (px):" msgstr "Straal vervagen (px):" @@ -7222,11 +7274,13 @@ msgstr "Ondoorzichtigheid (%):" #: ../src/extension/internal/filter/drop-shadow.h:39 #: ../src/extension/internal/filter/drop-shadow.h:99 +#: ../src/extension/internal/filter/shadows.h:60 msgid "Horizontal offset (px):" msgstr "Horizontale verplaatsing (px):" #: ../src/extension/internal/filter/drop-shadow.h:40 #: ../src/extension/internal/filter/drop-shadow.h:100 +#: ../src/extension/internal/filter/shadows.h:61 msgid "Vertical offset (px):" msgstr "Verticale verplaatsing (px):" @@ -7289,7 +7343,7 @@ msgid "Clean-up:" msgstr "Uiteinde:" #: ../src/extension/internal/filter/experimental.h:237 -#: ../src/widgets/toolbox.cpp:8324 +#: ../src/widgets/toolbox.cpp:8366 msgid "Length:" msgstr "Lengte:" @@ -7305,11 +7359,8 @@ msgstr "Tekening, aanpasbaar" msgid "Erase:" msgstr "Gommen:" -#: ../src/extension/internal/filter/experimental.h:338 -msgid "Transluscent" -msgstr "Doorzichtig" - #: ../src/extension/internal/filter/experimental.h:344 +#: ../src/extension/internal/filter/image.h:56 msgid "Level:" msgstr "Niveau:" @@ -7319,7 +7370,7 @@ msgstr "Vulkleur" #: ../src/extension/internal/filter/experimental.h:350 msgid "Image on fill" -msgstr "" +msgstr "Afbeelding op de vulling" #: ../src/extension/internal/filter/experimental.h:353 msgid "Stroke color" @@ -7327,7 +7378,7 @@ msgstr "Lijnkleur" #: ../src/extension/internal/filter/experimental.h:354 msgid "Image on stroke" -msgstr "" +msgstr "Afbeelding op de lijn" #: ../src/extension/internal/filter/experimental.h:365 msgid "Convert images to duochrome drawings" @@ -7369,11 +7420,11 @@ msgstr "Uitvoer:" #: ../src/extension/internal/filter/experimental.h:618 msgid "Simplify (primary):" -msgstr "" +msgstr "Vereenvoudigen (primair):" #: ../src/extension/internal/filter/experimental.h:619 msgid "Simplify (secondary):" -msgstr "" +msgstr "Vereenvoudigen (secundair):" #: ../src/extension/internal/filter/experimental.h:620 msgid "Pre-saturation:" @@ -7411,6 +7462,30 @@ msgstr "Persoonlijk" msgid "Null external module directory name. Filters will not be loaded." msgstr "Map voor uitbreidingen niet beschikbaar. Filters kunnen niet geladen worden." +#: ../src/extension/internal/filter/image.h:49 +msgid "Edge detect, custom (Image)" +msgstr "" + +#: ../src/extension/internal/filter/image.h:51 +#, fuzzy +msgid "Detect:" +msgstr "Datum:" + +#: ../src/extension/internal/filter/image.h:52 +#, fuzzy +msgid "All" +msgstr "alle" + +#: ../src/extension/internal/filter/image.h:53 +#, fuzzy +msgid "Vertical lines" +msgstr "Verticale straal" + +#: ../src/extension/internal/filter/image.h:54 +#, fuzzy +msgid "Horizontal lines" +msgstr "Horizontale straal" + #: ../src/extension/internal/filter/morphology.h:51 msgid "Cross-smooth, custom (Morphology)" msgstr "Kruis-vervagen, aanpasbaar (morfologie)" @@ -7419,6 +7494,72 @@ msgstr "Kruis-vervagen, aanpasbaar (morfologie)" msgid "Smooth edges and angles of shapes" msgstr "Randen en hoeken van vormen vervagen" +#: ../src/extension/internal/filter/shadows.h:55 +#, fuzzy +msgid "Drop shadow, custom (Shadows and Glows)" +msgstr "Schaduw en gloed" + +#. ## end option page +#: ../src/extension/internal/filter/shadows.h:58 +#: ../src/ui/dialog/tracedialog.cpp:617 +#: ../src/ui/dialog/tracedialog.cpp:623 +#: ../share/extensions/color_custom.inx.h:14 +#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/dots.inx.h:5 +#: ../share/extensions/dxf_input.inx.h:15 +#: ../share/extensions/dxf_outlines.inx.h:9 +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 +#: ../share/extensions/generate_voronoi.inx.h:7 +#: ../share/extensions/gimp_xcf.inx.h:4 +#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/jessyInk_uninstall.inx.h:3 +#: ../share/extensions/lorem_ipsum.inx.h:4 +#: ../share/extensions/pathalongpath.inx.h:7 +#: ../share/extensions/pathscatter.inx.h:10 +#: ../share/extensions/radiusrand.inx.h:6 +#: ../share/extensions/scour.inx.h:20 +#: ../share/extensions/split.inx.h:2 +#: ../share/extensions/voronoi2svg.inx.h:6 +#: ../share/extensions/webslicer_create_group.inx.h:7 +#: ../share/extensions/webslicer_export.inx.h:6 +#: ../share/extensions/web-set-att.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:6 +msgid "Options" +msgstr "Opties" + +#: ../src/extension/internal/filter/shadows.h:62 +#, fuzzy +msgid "Blur type:" +msgstr "Vervagen" + +#: ../src/extension/internal/filter/shadows.h:63 +#, fuzzy +msgid "Outer" +msgstr "Anders" + +#: ../src/extension/internal/filter/shadows.h:64 +#, fuzzy +msgid "Inner" +msgstr "Inverteren" + +#: ../src/extension/internal/filter/shadows.h:68 +#, fuzzy +msgid "Blur color" +msgstr "Vulkleur" + +#: ../src/extension/internal/filter/shadows.h:70 +#, fuzzy +msgid "Use object's color" +msgstr "Kleurnamen gebruiken" + +#: ../src/extension/internal/filter/shadows.h:80 +msgid "Colorizable Drop shadow" +msgstr "Gekleurde slagschaduw" + #: ../src/extension/internal/filter/snow.h:32 msgid "Snow crest" msgstr "Sneeuwlaag" @@ -7517,9 +7658,9 @@ msgid "Render" msgstr "Render" #: ../src/extension/internal/grid.cpp:211 -#: ../src/ui/dialog/document-properties.cpp:119 -#: ../src/ui/dialog/inkscape-preferences.cpp:1082 -#: ../src/widgets/toolbox.cpp:2390 +#: ../src/ui/dialog/document-properties.cpp:118 +#: ../src/ui/dialog/inkscape-preferences.cpp:1083 +#: ../src/widgets/toolbox.cpp:2430 msgid "Grids" msgstr "Rasters" @@ -7770,10 +7911,6 @@ msgstr "Gecomprimeerde gewone SVG (*.svgz)" msgid "Scalable Vector Graphics format compressed with GZip" msgstr "Scalable Vector Graphics-formaat gecomprimeerd met GZip" -#: ../src/extension/internal/win32.cpp:486 -msgid "Windows 32-bit Print" -msgstr "Windows 32-bit print" - #: ../src/extension/internal/wpg-input.cpp:123 msgid "WPG Input" msgstr "WPG-invoer" @@ -7799,130 +7936,130 @@ msgstr "Het effect live voorvertonen op het canvas?" msgid "Format autodetect failed. The file is being opened as SVG." msgstr "Het automatisch detecteren van de bestandsindeling is mislukt. Het bestand wordt geopend als SVG." -#: ../src/file.cpp:149 +#: ../src/file.cpp:148 msgid "default.svg" msgstr "default.nl.svg" -#: ../src/file.cpp:266 +#: ../src/file.cpp:265 msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:274 -#: ../src/file.cpp:1073 +#: ../src/file.cpp:273 +#: ../src/file.cpp:1072 #, c-format msgid "Failed to load the requested file %s" msgstr "Het laden van het gevraagde bestand %s is mislukt" -#: ../src/file.cpp:298 +#: ../src/file.cpp:297 msgid "Document not saved yet. Cannot revert." msgstr "Het bestand is nog niet opgeslagen. Kan het niet terugdraaien." -#: ../src/file.cpp:304 +#: ../src/file.cpp:303 #, c-format msgid "Changes will be lost! Are you sure you want to reload document %s?" msgstr "Wijzigingen zullen verloren gaan! Weet u zeker dat u bestand %s opnieuw wilt laden?" -#: ../src/file.cpp:333 +#: ../src/file.cpp:332 msgid "Document reverted." msgstr "Het bestand is teruggezet." -#: ../src/file.cpp:335 +#: ../src/file.cpp:334 msgid "Document not reverted." msgstr "Het bestand is niet teruggezet." -#: ../src/file.cpp:485 +#: ../src/file.cpp:484 msgid "Select file to open" msgstr "Selecteer een bestand om te openen" -#: ../src/file.cpp:569 +#: ../src/file.cpp:568 msgid "Vacuum <defs>" msgstr "<Defs> opruimen" -#: ../src/file.cpp:574 +#: ../src/file.cpp:573 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "In <defs> is %i ongebruikte definitie verwijderd." msgstr[1] "In <defs> zijn %i ongebruikte definities verwijderd." -#: ../src/file.cpp:579 +#: ../src/file.cpp:578 msgid "No unused definitions in <defs>." msgstr "Er zijn geen ongebruikte definities in <defs>." -#: ../src/file.cpp:610 +#: ../src/file.cpp:609 #, c-format msgid "No Inkscape extension found to save document (%s). This may have been caused by an unknown filename extension." msgstr "Er werd geen Inkscape-uitbreiding aangetroffen om het bestand (%s) op te slaan. Dit kan komen door een onbekende bestandsextensie." -#: ../src/file.cpp:611 -#: ../src/file.cpp:619 -#: ../src/file.cpp:627 -#: ../src/file.cpp:633 -#: ../src/file.cpp:638 +#: ../src/file.cpp:610 +#: ../src/file.cpp:618 +#: ../src/file.cpp:626 +#: ../src/file.cpp:632 +#: ../src/file.cpp:637 msgid "Document not saved." msgstr "Document is niet opgeslagen." -#: ../src/file.cpp:618 +#: ../src/file.cpp:617 #, c-format msgid "File %s is write protected. Please remove write protection and try again." msgstr "Bestand %s is schrijfbeveiligd. Verwijder aub de schrijfbeveiliging en probeer opnieuw." -#: ../src/file.cpp:626 +#: ../src/file.cpp:625 #, c-format msgid "File %s could not be saved." msgstr "Bestand %s kon niet worden opgeslagen." -#: ../src/file.cpp:643 +#: ../src/file.cpp:642 msgid "Document saved." msgstr "Document is opgeslagen." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:776 -#: ../src/file.cpp:1210 +#: ../src/file.cpp:775 +#: ../src/file.cpp:1209 #, c-format msgid "drawing%s" msgstr "Tekening%s" -#: ../src/file.cpp:782 +#: ../src/file.cpp:781 #, c-format msgid "drawing-%d%s" msgstr "Tekening-%d%s" -#: ../src/file.cpp:786 +#: ../src/file.cpp:785 #, c-format msgid "%s" msgstr "%s" -#: ../src/file.cpp:801 +#: ../src/file.cpp:800 msgid "Select file to save a copy to" msgstr "Selecteer een bestand om een kopie naar op te slaan" -#: ../src/file.cpp:803 +#: ../src/file.cpp:802 msgid "Select file to save to" msgstr "Selecteer een bestand om in op te slaan" -#: ../src/file.cpp:898 +#: ../src/file.cpp:897 msgid "No changes need to be saved." msgstr "Er zijn geen wijzigingen die opgeslagen hoeven te worden." -#: ../src/file.cpp:915 +#: ../src/file.cpp:914 msgid "Saving document..." msgstr "Opslaan van document..." -#: ../src/file.cpp:1070 +#: ../src/file.cpp:1069 msgid "Import" msgstr "Importeren" -#: ../src/file.cpp:1120 +#: ../src/file.cpp:1119 msgid "Select file to import" msgstr "Selecteer een bestand om te importeren" -#: ../src/file.cpp:1232 +#: ../src/file.cpp:1231 msgid "Select file to export to" msgstr "Selecteer een bestand om naar te exporteren" -#: ../src/file.cpp:1475 -#: ../src/verbs.cpp:2267 +#: ../src/file.cpp:1474 +#: ../src/verbs.cpp:2265 msgid "Import From Open Clip Art Library" msgstr "Uit 'Open Clip Art'-mediatheek importeren" @@ -8027,7 +8164,7 @@ msgstr "Luminantie naar alfa" #. File #: ../src/filter-enums.cpp:70 -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:848 #: ../src/verbs.cpp:2244 #: ../share/extensions/jessyInk_mouseHandler.inx.h:1 #: ../share/extensions/jessyInk_transitions.inx.h:2 @@ -8071,7 +8208,7 @@ msgid "Gamma" msgstr "Gamma" #: ../src/filter-enums.cpp:92 -#: ../src/selection-chemistry.cpp:436 +#: ../src/selection-chemistry.cpp:432 #: ../src/widgets/gradient-selector.cpp:141 msgid "Duplicate" msgstr "Dupliceren" @@ -8082,19 +8219,24 @@ msgstr "Meer rijen" #: ../src/filter-enums.cpp:94 #: ../src/live_effects/lpe-ruler.cpp:34 -#: ../src/ui/dialog/document-properties.cpp:326 #: ../src/ui/dialog/filter-effects-dialog.cpp:477 -#: ../src/ui/dialog/inkscape-preferences.cpp:267 -#: ../src/ui/dialog/inkscape-preferences.cpp:433 -#: ../src/ui/dialog/inkscape-preferences.cpp:595 -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 -#: ../src/ui/dialog/inkscape-preferences.cpp:1297 +#: ../src/ui/dialog/inkscape-preferences.cpp:268 +#: ../src/ui/dialog/inkscape-preferences.cpp:434 +#: ../src/ui/dialog/inkscape-preferences.cpp:596 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 #: ../src/ui/dialog/input.cpp:607 #: ../src/ui/dialog/input.cpp:608 #: ../src/ui/dialog/input.cpp:1269 #: ../src/verbs.cpp:2241 #: ../src/widgets/stroke-style.cpp:366 -#: ../src/widgets/toolbox.cpp:4123 +#: ../src/widgets/toolbox.cpp:4171 +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 #: ../share/extensions/grid_polar.inx.h:18 #: ../share/extensions/guides_creator.inx.h:15 #: ../share/extensions/scour.inx.h:16 @@ -8102,31 +8244,31 @@ msgid "None" msgstr "Geen" #: ../src/filter-enums.cpp:100 -#: ../src/flood-context.cpp:249 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/flood-context.cpp:241 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:403 #: ../src/widgets/sp-color-scales.cpp:404 msgid "Red" msgstr "Rood" #: ../src/filter-enums.cpp:101 -#: ../src/flood-context.cpp:250 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/flood-context.cpp:242 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:406 #: ../src/widgets/sp-color-scales.cpp:407 msgid "Green" msgstr "Groen" #: ../src/filter-enums.cpp:102 -#: ../src/flood-context.cpp:251 -#: ../src/widgets/sp-color-icc-selector.cpp:227 +#: ../src/flood-context.cpp:243 +#: ../src/widgets/sp-color-icc-selector.cpp:228 #: ../src/widgets/sp-color-scales.cpp:409 #: ../src/widgets/sp-color-scales.cpp:410 msgid "Blue" msgstr "Blauw" #: ../src/filter-enums.cpp:103 -#: ../src/flood-context.cpp:255 +#: ../src/flood-context.cpp:247 msgid "Alpha" msgstr "Alfa" @@ -8144,7 +8286,7 @@ msgstr "Fractale ruis" #: ../src/filter-enums.cpp:123 msgid "Distant Light" -msgstr "Veraf licht" +msgstr "Ver licht" #: ../src/filter-enums.cpp:124 msgid "Point Light" @@ -8154,150 +8296,150 @@ msgstr "Puntlicht" msgid "Spot Light" msgstr "Spotlicht" -#: ../src/flood-context.cpp:248 +#: ../src/flood-context.cpp:240 msgid "Visible Colors" msgstr "Zichtbare kleuren" -#: ../src/flood-context.cpp:252 -#: ../src/widgets/sp-color-icc-selector.cpp:229 +#: ../src/flood-context.cpp:244 #: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:429 #: ../src/widgets/sp-color-scales.cpp:430 -#: ../src/widgets/toolbox.cpp:4505 +#: ../src/widgets/toolbox.cpp:4553 #: ../share/extensions/color_randomize.inx.h:4 msgid "Hue" msgstr "Tint" -#: ../src/flood-context.cpp:253 -#: ../src/ui/dialog/inkscape-preferences.cpp:898 -#: ../src/widgets/sp-color-icc-selector.cpp:229 +#: ../src/flood-context.cpp:245 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 #: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:432 #: ../src/widgets/sp-color-scales.cpp:433 -#: ../src/widgets/toolbox.cpp:4521 +#: ../src/widgets/toolbox.cpp:4569 #: ../share/extensions/color_randomize.inx.h:8 msgid "Saturation" msgstr "Verzadiging" -#: ../src/flood-context.cpp:254 -#: ../src/widgets/sp-color-icc-selector.cpp:230 +#: ../src/flood-context.cpp:246 +#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-scales.cpp:435 #: ../src/widgets/sp-color-scales.cpp:436 -#: ../src/widgets/toolbox.cpp:4537 +#: ../src/widgets/toolbox.cpp:4585 #: ../share/extensions/color_randomize.inx.h:5 msgid "Lightness" msgstr "Lichtheid" -#: ../src/flood-context.cpp:266 +#: ../src/flood-context.cpp:258 msgctxt "Flood autogap" msgid "None" msgstr "Geen" -#: ../src/flood-context.cpp:267 +#: ../src/flood-context.cpp:259 msgctxt "Flood autogap" msgid "Small" msgstr "Klein" -#: ../src/flood-context.cpp:268 +#: ../src/flood-context.cpp:260 msgctxt "Flood autogap" msgid "Medium" msgstr "Middel" -#: ../src/flood-context.cpp:269 +#: ../src/flood-context.cpp:261 msgctxt "Flood autogap" msgid "Large" msgstr "Groot" -#: ../src/flood-context.cpp:471 +#: ../src/flood-context.cpp:474 msgid "Too much inset, the result is empty." msgstr "Te veel versmalling, het resultaat is leeg." -#: ../src/flood-context.cpp:511 +#: ../src/flood-context.cpp:514 #, c-format msgid "Area filled, path with %d node created and unioned with selection." msgid_plural "Area filled, path with %d nodes created and unioned with selection." msgstr[0] "Gebied is gevuld, pad met %d knooppunt is gemaakt en verenigd met selectie." msgstr[1] "Gebied is gevuld, pad met %d knooppunten is gemaakt en verenigd met selectie." -#: ../src/flood-context.cpp:515 +#: ../src/flood-context.cpp:518 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." msgstr[0] "Gebied is gevuld, pad met %d knooppunt is gemaakt." msgstr[1] "Gebied is gevuld, pad met %d knooppunten is gemaakt." -#: ../src/flood-context.cpp:787 -#: ../src/flood-context.cpp:1101 +#: ../src/flood-context.cpp:790 +#: ../src/flood-context.cpp:1094 msgid "Area is not bounded, cannot fill." msgstr "Gebied is niet gesloten, kan het niet vullen." -#: ../src/flood-context.cpp:1106 +#: ../src/flood-context.cpp:1099 msgid "Only the visible part of the bounded area was filled. If you want to fill all of the area, undo, zoom out, and fill again." msgstr "Enkel het zichtbare deel van een afgebakend gebied werd gevuld. Als u het hele gebied wilt vullen, ongedaan maken, uitzoomen en opnieuw vullen." -#: ../src/flood-context.cpp:1124 -#: ../src/flood-context.cpp:1283 +#: ../src/flood-context.cpp:1117 +#: ../src/flood-context.cpp:1276 msgid "Fill bounded area" msgstr "Afgebakend gebied vullen" -#: ../src/flood-context.cpp:1143 +#: ../src/flood-context.cpp:1136 msgid "Set style on object" msgstr "Stijl aan object geven" -#: ../src/flood-context.cpp:1202 +#: ../src/flood-context.cpp:1195 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "Sleep over gebieden om ze aan vulling toe te voegen; gebruik Alt voor aanraakvulling" -#: ../src/gradient-context.cpp:132 +#: ../src/gradient-context.cpp:133 #: ../src/gradient-drag.cpp:78 msgid "Linear gradient start" msgstr "Begin van lineair kleurverloop" #. POINT_LG_BEGIN -#: ../src/gradient-context.cpp:133 +#: ../src/gradient-context.cpp:134 #: ../src/gradient-drag.cpp:79 msgid "Linear gradient end" msgstr "Einde van lineair kleurverloop" -#: ../src/gradient-context.cpp:134 +#: ../src/gradient-context.cpp:135 #: ../src/gradient-drag.cpp:80 msgid "Linear gradient mid stop" msgstr "Overgang in lineair kleurverloop" -#: ../src/gradient-context.cpp:135 +#: ../src/gradient-context.cpp:136 #: ../src/gradient-drag.cpp:81 msgid "Radial gradient center" msgstr "Centrum van radiaal kleurverloop" -#: ../src/gradient-context.cpp:136 #: ../src/gradient-context.cpp:137 +#: ../src/gradient-context.cpp:138 #: ../src/gradient-drag.cpp:82 #: ../src/gradient-drag.cpp:83 msgid "Radial gradient radius" msgstr "Straal van radiaal kleurverloop" -#: ../src/gradient-context.cpp:138 +#: ../src/gradient-context.cpp:139 #: ../src/gradient-drag.cpp:84 msgid "Radial gradient focus" msgstr "Brandpunt van radiaal kleurverloop" #. POINT_RG_FOCUS -#: ../src/gradient-context.cpp:139 #: ../src/gradient-context.cpp:140 +#: ../src/gradient-context.cpp:141 #: ../src/gradient-drag.cpp:85 #: ../src/gradient-drag.cpp:86 msgid "Radial gradient mid stop" msgstr "Overgang in radiaal kleurverloop" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/gradient-context.cpp:165 +#: ../src/gradient-context.cpp:166 #, c-format msgid "%s selected" msgstr "%s geselecteerd" #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/gradient-context.cpp:167 -#: ../src/gradient-context.cpp:176 +#: ../src/gradient-context.cpp:168 +#: ../src/gradient-context.cpp:177 #, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" @@ -8305,9 +8447,9 @@ msgstr[0] " van %d kleurverloophandvat" msgstr[1] " van %d kleurverloophandvatten" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/gradient-context.cpp:168 -#: ../src/gradient-context.cpp:177 -#: ../src/gradient-context.cpp:184 +#: ../src/gradient-context.cpp:169 +#: ../src/gradient-context.cpp:178 +#: ../src/gradient-context.cpp:185 #, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" @@ -8315,7 +8457,7 @@ msgstr[0] " aan %d geselecteerd object" msgstr[1] " aan %d geselecteerde objecten" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/gradient-context.cpp:174 +#: ../src/gradient-context.cpp:175 #, c-format msgid "One handle merging %d stop (drag with Shift to separate) selected" msgid_plural "One handle merging %d stops (drag with Shift to separate) selected" @@ -8323,7 +8465,7 @@ msgstr[0] "Handvat geselecteerd dat %d overgang verenigt (sleep met Shift msgstr[1] "Handvat geselecteerd dat %d overgangen verenigt (sleep met Shift om te scheiden)" #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/gradient-context.cpp:182 +#: ../src/gradient-context.cpp:183 #, c-format msgid "%d gradient handle selected out of %d" msgid_plural "%d gradient handles selected out of %d" @@ -8331,52 +8473,52 @@ msgstr[0] "%d (van %d) kleurverloophandvat geselecteerd" msgstr[1] "%d (van %d) kleurverloophandvatten geselecteerd" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/gradient-context.cpp:189 +#: ../src/gradient-context.cpp:190 #, c-format msgid "No gradient handles selected out of %d on %d selected object" msgid_plural "No gradient handles selected out of %d on %d selected objects" msgstr[0] "Geen (van %d) kleurverloophandvat geselecteerd op %d geselecteerd object" msgstr[1] "Geen (van %d) kleurverloophandvat geselecteerd op %d geselecteerde objecten" -#: ../src/gradient-context.cpp:389 -#: ../src/gradient-context.cpp:482 +#: ../src/gradient-context.cpp:390 +#: ../src/gradient-context.cpp:483 #: ../src/ui/dialog/swatches.cpp:182 #: ../src/widgets/gradient-vector.cpp:741 msgid "Add gradient stop" msgstr "Kleurverloopovergang toevoegen" -#: ../src/gradient-context.cpp:457 +#: ../src/gradient-context.cpp:458 msgid "Simplify gradient" msgstr "Kleurverloop vereenvoudigen" -#: ../src/gradient-context.cpp:534 +#: ../src/gradient-context.cpp:535 msgid "Create default gradient" msgstr "Standaardkleurverloop maken" -#: ../src/gradient-context.cpp:589 +#: ../src/gradient-context.cpp:592 msgid "Draw around handles to select them" msgstr "Sleep rondom handvatten om ze te selecteren" -#: ../src/gradient-context.cpp:698 +#: ../src/gradient-context.cpp:701 msgid "Ctrl: snap gradient angle" msgstr "Ctrl: draait kleurverloop in stappen" -#: ../src/gradient-context.cpp:699 +#: ../src/gradient-context.cpp:702 msgid "Shift: draw gradient around the starting point" msgstr "Shift: tekent kleurverloop rondom het startpunt" -#: ../src/gradient-context.cpp:819 +#: ../src/gradient-context.cpp:822 msgid "Invert gradient" msgstr "Kleurverloop inverteren" -#: ../src/gradient-context.cpp:936 +#: ../src/gradient-context.cpp:939 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" msgstr[0] "Kleurverloop voor %d object; gebruik Ctrl om in stappen te draaien" msgstr[1] "Kleurverloop voor %d objecten; gebruik Ctrl om in stappen te draaien" -#: ../src/gradient-context.cpp:940 +#: ../src/gradient-context.cpp:943 msgid "Select objects on which to create gradient." msgstr "Selecteer objecten om een kleurverloop voor te maken." @@ -8439,12 +8581,11 @@ msgstr "Eenheid" #. Add the units menu. #: ../src/helper/units.cpp:37 -#: ../src/widgets/select-toolbar.cpp:514 -#: ../src/widgets/toolbox.cpp:1595 -#: ../src/widgets/toolbox.cpp:1677 -#: ../src/widgets/toolbox.cpp:3390 -#: ../src/widgets/toolbox.cpp:6114 -#: ../src/widgets/toolbox.cpp:8516 +#: ../src/widgets/select-toolbar.cpp:521 +#: ../src/widgets/toolbox.cpp:1597 +#: ../src/widgets/toolbox.cpp:3438 +#: ../src/widgets/toolbox.cpp:6156 +#: ../src/widgets/toolbox.cpp:8558 #: ../share/extensions/dxf_outlines.inx.h:10 msgid "Units" msgstr "Eenheden" @@ -8510,7 +8651,7 @@ msgid "Percent" msgstr "procent" #: ../src/helper/units.cpp:42 -#: ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "%" msgstr "%" @@ -8526,6 +8667,13 @@ msgstr "millimeter" #: ../src/ui/widget/selected-style.cpp:298 #: ../share/extensions/dxf_outlines.inx.h:15 #: ../share/extensions/gears.inx.h:9 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 msgid "mm" msgstr "mm" @@ -8567,6 +8715,13 @@ msgstr "inch" #: ../src/helper/units.cpp:46 #: ../share/extensions/dxf_outlines.inx.h:13 #: ../share/extensions/gears.inx.h:8 +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 msgid "in" msgstr "inch" @@ -8614,158 +8769,158 @@ msgstr "ex" msgid "Ex squares" msgstr "Ex kwadraat" -#: ../src/inkscape.cpp:324 +#: ../src/inkscape.cpp:320 msgid "Autosaving documents..." msgstr "Auto-opslaan van document..." -#: ../src/inkscape.cpp:395 +#: ../src/inkscape.cpp:391 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "Auto-opslaan mislukt! Kon de inkscapeuitbreiding om document te bewaren niet vinden." -#: ../src/inkscape.cpp:398 -#: ../src/inkscape.cpp:405 +#: ../src/inkscape.cpp:394 +#: ../src/inkscape.cpp:401 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "Auto-opslaan mislukt! Bestand %s kon niet bewaard worden." -#: ../src/inkscape.cpp:420 +#: ../src/inkscape.cpp:416 msgid "Autosave complete." msgstr "Auto-opslaan afgelopen." -#: ../src/inkscape.cpp:666 +#: ../src/inkscape.cpp:662 msgid "Untitled document" msgstr "Naamloos document" #. Show nice dialog box -#: ../src/inkscape.cpp:698 +#: ../src/inkscape.cpp:694 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "Er is een interne fout opgetreden in Inkscape. Het programma wordt afgesloten.\n" -#: ../src/inkscape.cpp:699 +#: ../src/inkscape.cpp:695 msgid "Automatic backups of unsaved documents were done to the following locations:\n" msgstr "Automatische reservekopieën van niet-opgeslagen documenten werden gemaakt op de volgende locaties:\n" -#: ../src/inkscape.cpp:700 +#: ../src/inkscape.cpp:696 msgid "Automatic backup of the following documents failed:\n" msgstr "Het automatisch maken van een reservekopie is mislukt voor de volgende bestanden:\n" #. sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu", #. checkitem_toggled, checkitem_update, 0); -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:826 msgid "_Commands Bar" msgstr "_Opdrachtenbalk" -#: ../src/interface.cpp:832 +#: ../src/interface.cpp:826 msgid "Show or hide the Commands bar (under the menu)" msgstr "Opdrachtenbalk weergeven of verbergen (onder de menubalk)" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:828 msgid "Sn_ap Controls Bar" msgstr "Klee_findicatoren" -#: ../src/interface.cpp:834 +#: ../src/interface.cpp:828 msgid "Show or hide the snapping controls" msgstr "Balk met kleefinstellingen weergeven of verbergen" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:830 msgid "T_ool Controls Bar" msgstr "G_ereedschapsdetails" -#: ../src/interface.cpp:836 +#: ../src/interface.cpp:830 msgid "Show or hide the Tool Controls bar" msgstr "Gereedschapsdetailsbalk weergeven of verbergen" -#: ../src/interface.cpp:838 +#: ../src/interface.cpp:832 msgid "_Toolbox" msgstr "_Gereedschappen" -#: ../src/interface.cpp:838 +#: ../src/interface.cpp:832 msgid "Show or hide the main toolbox (on the left)" msgstr "Gereedschappenbalk weergeven of verbergen (aan de linkerzijde)" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:838 msgid "_Palette" msgstr "_Palet" -#: ../src/interface.cpp:844 +#: ../src/interface.cpp:838 msgid "Show or hide the color palette" msgstr "Paletbalk weergeven of verbergen (onderaan)" -#: ../src/interface.cpp:846 +#: ../src/interface.cpp:840 msgid "_Statusbar" msgstr "_Statusbalk" -#: ../src/interface.cpp:846 +#: ../src/interface.cpp:840 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Statusbalk weergeven of verbergen (onderaan)" -#: ../src/interface.cpp:854 +#: ../src/interface.cpp:848 msgid "Default interface setup" msgstr "Standaard interface setup" -#: ../src/interface.cpp:855 +#: ../src/interface.cpp:849 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1437 #: ../share/extensions/color_custom.inx.h:10 #: ../share/extensions/markers_strokepaint.inx.h:5 msgid "Custom" msgstr "Aangepast" -#: ../src/interface.cpp:855 +#: ../src/interface.cpp:849 msgid "Set the custom task" msgstr "Aangepaste taak instellen" -#: ../src/interface.cpp:856 +#: ../src/interface.cpp:850 msgid "Wide" msgstr "Breedbeeld" -#: ../src/interface.cpp:856 +#: ../src/interface.cpp:850 msgid "Setup for widescreen work" msgstr "Setup voor breedbeeldwerk" -#: ../src/interface.cpp:953 +#: ../src/interface.cpp:947 #, c-format msgid "Verb \"%s\" Unknown" msgstr "Werkwoord \"%s\" is onbekend" -#: ../src/interface.cpp:995 +#: ../src/interface.cpp:989 msgid "Open _Recent" msgstr "_Recente bestanden" #. TRANSLATORS: #%s is the id of the group e.g. , not a number. -#: ../src/interface.cpp:1100 +#: ../src/interface.cpp:1094 #, c-format msgid "Enter group #%s" msgstr "Groep #%s binnengaan" -#: ../src/interface.cpp:1111 +#: ../src/interface.cpp:1105 msgid "Go to parent" msgstr "Naar de ouder gaan" -#: ../src/interface.cpp:1202 -#: ../src/interface.cpp:1288 -#: ../src/interface.cpp:1391 +#: ../src/interface.cpp:1196 +#: ../src/interface.cpp:1282 +#: ../src/interface.cpp:1385 #: ../src/ui/widget/selected-style.cpp:469 msgid "Drop color" msgstr "Kleur plakken" -#: ../src/interface.cpp:1241 -#: ../src/interface.cpp:1351 +#: ../src/interface.cpp:1235 +#: ../src/interface.cpp:1345 msgid "Drop color on gradient" msgstr "Kleur plakken op kleurverloop" -#: ../src/interface.cpp:1404 +#: ../src/interface.cpp:1398 msgid "Could not parse SVG data" msgstr "De SVG-gegevens konden niet worden verwerkt." -#: ../src/interface.cpp:1443 +#: ../src/interface.cpp:1437 msgid "Drop SVG" msgstr "SVG plakken" -#: ../src/interface.cpp:1477 +#: ../src/interface.cpp:1471 msgid "Drop bitmap image" msgstr "Bitmap plakken" -#: ../src/interface.cpp:1569 +#: ../src/interface.cpp:1563 #, c-format msgid "" "A file named \"%s\" already exists. Do you want to replace it?\n" @@ -8776,7 +8931,7 @@ msgstr "" "\n" "Het bestand bestaat al in \"%s\". Door dit te vervangen, wordt de oude inhoud overschreven." -#: ../src/interface.cpp:1576 +#: ../src/interface.cpp:1570 #: ../share/extensions/web-set-att.inx.h:7 #: ../share/extensions/web-transmit-att.inx.h:7 msgid "Replace" @@ -8823,156 +8978,157 @@ msgstr "Paneelstijl" msgid "Dockbar style to show items on it" msgstr "Paneelstijl om items in weer te geven" -#: ../src/libgdl/gdl-dock-item-grip.c:384 -msgid "Iconify" -msgstr "Inklappen" +#: ../src/libgdl/gdl-dock-item-grip.c:379 +msgid "Iconify this dock" +msgstr "Dit paneel inklappen" -#: ../src/libgdl/gdl-dock-item-grip.c:386 -msgid "Close" -msgstr "Sluiten" +#: ../src/libgdl/gdl-dock-item-grip.c:381 +msgid "Close this dock" +msgstr "Dit paneel sluiten" -#: ../src/libgdl/gdl-dock-item-grip.c:695 +#: ../src/libgdl/gdl-dock-item-grip.c:703 #: ../src/libgdl/gdl-dock-tablabel.c:128 msgid "Controlling dock item" msgstr "Aansturend paneelitem" -#: ../src/libgdl/gdl-dock-item-grip.c:696 +#: ../src/libgdl/gdl-dock-item-grip.c:704 msgid "Dockitem which 'owns' this grip" msgstr "Paneelitem die dit grijppunt 'beheert'" #. Name -#: ../src/libgdl/gdl-dock-item.c:287 -#: ../src/widgets/toolbox.cpp:7725 -#: ../share/extensions/gcodetools_all_in_one.inx.h:34 +#: ../src/libgdl/gdl-dock-item.c:297 +#: ../src/widgets/toolbox.cpp:7767 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 #: ../share/extensions/gcodetools_orientation_points.inx.h:6 msgid "Orientation" msgstr "Oriëntatie" -#: ../src/libgdl/gdl-dock-item.c:288 +#: ../src/libgdl/gdl-dock-item.c:298 msgid "Orientation of the docking item" msgstr "Oriëntatie van het paneelitem" -#: ../src/libgdl/gdl-dock-item.c:303 +#: ../src/libgdl/gdl-dock-item.c:313 msgid "Resizable" msgstr "Herschaalbaar" -#: ../src/libgdl/gdl-dock-item.c:304 -msgid "If set, the dock item can be resized when docked in a panel" +#: ../src/libgdl/gdl-dock-item.c:314 +#, fuzzy +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" msgstr "Indien aangevinkt, kan het dockitem herschalen wanneer het in een paneel gezet is" -#: ../src/libgdl/gdl-dock-item.c:311 +#: ../src/libgdl/gdl-dock-item.c:321 msgid "Item behavior" msgstr "Itemgedrag" -#: ../src/libgdl/gdl-dock-item.c:312 +#: ../src/libgdl/gdl-dock-item.c:322 msgid "General behavior for the dock item (i.e. whether it can float, if it's locked, etc.)" msgstr "Algemeen gedrag voor het paneelitem (bijv. of het kan zweven, of het vergrendeld is, etc.)" -#: ../src/libgdl/gdl-dock-item.c:320 -#: ../src/libgdl/gdl-dock-master.c:151 +#: ../src/libgdl/gdl-dock-item.c:330 +#: ../src/libgdl/gdl-dock-master.c:153 msgid "Locked" msgstr "Vergrendeld" -#: ../src/libgdl/gdl-dock-item.c:321 +#: ../src/libgdl/gdl-dock-item.c:331 msgid "If set, the dock item cannot be dragged around and it doesn't show a grip" msgstr "Indien aangevinkt, kan het paneelitem niet rondgesleept worden en toont het geen grijppunt" -#: ../src/libgdl/gdl-dock-item.c:329 +#: ../src/libgdl/gdl-dock-item.c:339 msgid "Preferred width" msgstr "Voorkeursbreedte" -#: ../src/libgdl/gdl-dock-item.c:330 +#: ../src/libgdl/gdl-dock-item.c:340 msgid "Preferred width for the dock item" msgstr "Voorkeursbreedte voor panelen" -#: ../src/libgdl/gdl-dock-item.c:336 +#: ../src/libgdl/gdl-dock-item.c:346 msgid "Preferred height" msgstr "Voorkeurshoogte" -#: ../src/libgdl/gdl-dock-item.c:337 +#: ../src/libgdl/gdl-dock-item.c:347 msgid "Preferred height for the dock item" msgstr "Voorkeurshoogte voor panelen" -#: ../src/libgdl/gdl-dock-item.c:616 +#: ../src/libgdl/gdl-dock-item.c:664 #, c-format msgid "You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or some other compound dock object." msgstr "U kunt geen paneelobject (%p van type %s) binnen een %s toevoegen. Gebruik een GdlDock of een ander paneelobject." -#: ../src/libgdl/gdl-dock-item.c:623 +#: ../src/libgdl/gdl-dock-item.c:671 #, c-format msgid "Attempting to add a widget with type %s to a %s, but it can only contain one widget at a time; it already contains a widget of type %s" msgstr "Kan geen widget van type %s aan %s toe te voegen, omdat deze er maar eentje kan bevatten; het bevat al een widget van type %s" -#: ../src/libgdl/gdl-dock-item.c:1345 -#: ../src/libgdl/gdl-dock-item.c:1390 +#: ../src/libgdl/gdl-dock-item.c:1392 +#: ../src/libgdl/gdl-dock-item.c:1442 #, c-format msgid "Unsupported docking strategy %s in dock object of type %s" msgstr "Niet-ondersteunde paneelstrategie %s in paneelobject van type %s" #. UnLock menuitem -#: ../src/libgdl/gdl-dock-item.c:1479 +#: ../src/libgdl/gdl-dock-item.c:1553 msgid "UnLock" msgstr "Ontgrendelen" #. Hide menuitem. -#: ../src/libgdl/gdl-dock-item.c:1486 +#: ../src/libgdl/gdl-dock-item.c:1560 msgid "Hide" msgstr "Verbergen" #. Lock menuitem -#: ../src/libgdl/gdl-dock-item.c:1491 +#: ../src/libgdl/gdl-dock-item.c:1565 msgid "Lock" msgstr "Vergrendelen" -#: ../src/libgdl/gdl-dock-item.c:1717 +#: ../src/libgdl/gdl-dock-item.c:1829 #, c-format msgid "Attempt to bind an unbound item %p" msgstr "Poging tot binden van ongebonden item %p" -#: ../src/libgdl/gdl-dock-master.c:144 +#: ../src/libgdl/gdl-dock-master.c:146 #: ../src/libgdl/gdl-dock.c:183 msgid "Default title" msgstr "Standaardtitel" -#: ../src/libgdl/gdl-dock-master.c:145 +#: ../src/libgdl/gdl-dock-master.c:147 msgid "Default title for newly created floating docks" msgstr "Standaardtitel voor nieuw aangemaakte zwevende panelen" -#: ../src/libgdl/gdl-dock-master.c:152 +#: ../src/libgdl/gdl-dock-master.c:154 msgid "If is set to 1, all the dock items bound to the master are locked; if it's 0, all are unlocked; -1 indicates inconsistency among the items" msgstr "Indien ingesteld op 1, zijn alle paneelitems vergrendeld die gebonden zijn aan de meester; indien 0, is alles ontgrendeld; -1 geeft aan dat items verschillend ingesteld zijn" -#: ../src/libgdl/gdl-dock-master.c:160 -#: ../src/libgdl/gdl-switcher.c:698 +#: ../src/libgdl/gdl-dock-master.c:162 +#: ../src/libgdl/gdl-switcher.c:692 msgid "Switcher Style" msgstr "Stijl wisselen" -#: ../src/libgdl/gdl-dock-master.c:161 -#: ../src/libgdl/gdl-switcher.c:699 +#: ../src/libgdl/gdl-dock-master.c:163 +#: ../src/libgdl/gdl-switcher.c:693 msgid "Switcher buttons style" msgstr "Stijl knoppen wisselen" -#: ../src/libgdl/gdl-dock-master.c:168 +#: ../src/libgdl/gdl-dock-master.c:170 msgid "Expand direction" msgstr "Uitbreidingsrichting" -#: ../src/libgdl/gdl-dock-master.c:169 +#: ../src/libgdl/gdl-dock-master.c:171 msgid "Allow the master's dock items to expand their container dock objects in the given direction" msgstr "De paneelitems van de meester toestaan om hun containerobjecten uit te breiden in de aangegeven richting" -#: ../src/libgdl/gdl-dock-master.c:796 +#: ../src/libgdl/gdl-dock-master.c:807 #, c-format msgid "master %p: unable to add object %p[%s] to the hash. There already is an item with that name (%p)." msgstr "Meester %p: kan object %p[%s] niet aan de hash toevoegen. Er is al een item met die naam (%p)." -#: ../src/libgdl/gdl-dock-master.c:969 +#: ../src/libgdl/gdl-dock-master.c:979 #, c-format msgid "The new dock controller %p is automatic. Only manual dock objects should be named controller." msgstr "De nieuwe dock-controller %p is automatisch. Enkel manuele dock-objecten mogen controller genoemd worden." #: ../src/libgdl/gdl-dock-notebook.c:134 #: ../src/ui/dialog/align-and-distribute.cpp:1034 -#: ../src/ui/dialog/document-properties.cpp:117 +#: ../src/ui/dialog/document-properties.cpp:116 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429 #: ../src/widgets/desktop-widget.cpp:1725 #: ../share/extensions/voronoi2svg.inx.h:8 @@ -9024,22 +9180,22 @@ msgstr "Paneelmeester" msgid "Dock master this dock object is bound to" msgstr "Paneelmeester waar dit paneelobject aan gebonden is" -#: ../src/libgdl/gdl-dock-object.c:434 +#: ../src/libgdl/gdl-dock-object.c:462 #, c-format msgid "Call to gdl_dock_object_dock in a dock object %p (object type is %s) which hasn't implemented this method" msgstr "Aanroep van gdl_dock_object_dock() in een paneelobject %p (objecttype %s) die deze methode niet geïmplementeerd heeft" -#: ../src/libgdl/gdl-dock-object.c:563 +#: ../src/libgdl/gdl-dock-object.c:595 #, c-format msgid "Dock operation requested in a non-bound object %p. The application might crash" msgstr "Een paneelbewerking werd aangevraagd in niet-gebonden object %p. De toepassing kan crashen." -#: ../src/libgdl/gdl-dock-object.c:570 +#: ../src/libgdl/gdl-dock-object.c:602 #, c-format msgid "Cannot dock %p to %p because they belong to different masters" msgstr "Kan %p niet aan %p koppelen, omdat ze aan verschillende meesters toebehoren" -#: ../src/libgdl/gdl-dock-object.c:612 +#: ../src/libgdl/gdl-dock-object.c:644 #, c-format msgid "Attempt to bind to %p an already bound dock object %p (current master: %p)" msgstr "Poging tot binden aan %p van een reeds gebonden paneelobject %p (huidige meester: %p)" @@ -9052,88 +9208,90 @@ msgstr "Positie" msgid "Position of the divider in pixels" msgstr "Positie van de scheider in pixels" -#: ../src/libgdl/gdl-dock-placeholder.c:143 +#: ../src/libgdl/gdl-dock-placeholder.c:144 msgid "Sticky" msgstr "Klevend" -#: ../src/libgdl/gdl-dock-placeholder.c:144 +#: ../src/libgdl/gdl-dock-placeholder.c:145 msgid "Whether the placeholder will stick to its host or move up the hierarchy when the host is redocked" msgstr "Of de plaatshouder bij de ouder blijft of omhoogschuift in de hiërarchie wanneer de ouder herplaatst wordt" -#: ../src/libgdl/gdl-dock-placeholder.c:151 +#: ../src/libgdl/gdl-dock-placeholder.c:152 msgid "Host" msgstr "Ouder" -#: ../src/libgdl/gdl-dock-placeholder.c:152 +#: ../src/libgdl/gdl-dock-placeholder.c:153 msgid "The dock object this placeholder is attached to" msgstr "Het paneelobject waar deze plaatshouder aan verbonden is" -#: ../src/libgdl/gdl-dock-placeholder.c:159 +#: ../src/libgdl/gdl-dock-placeholder.c:160 msgid "Next placement" msgstr "Volgende plaatsing" -#: ../src/libgdl/gdl-dock-placeholder.c:160 +#: ../src/libgdl/gdl-dock-placeholder.c:161 msgid "The position an item will be docked to our host if a request is made to dock to us" msgstr "De positie waar een item geplaatst zal worden ten opzichte van de ouder wanneer er een verzoek is tot herplaatsen" -#: ../src/libgdl/gdl-dock-placeholder.c:169 +#: ../src/libgdl/gdl-dock-placeholder.c:170 #: ../src/libgdl/gdl-dock.c:190 -#: ../src/widgets/toolbox.cpp:3329 -#: ../src/widgets/toolbox.cpp:4347 -#: ../src/widgets/toolbox.cpp:4667 +#: ../src/widgets/toolbox.cpp:3377 +#: ../src/widgets/toolbox.cpp:4395 +#: ../src/widgets/toolbox.cpp:4709 #: ../share/extensions/interp_att_g.inx.h:28 msgid "Width" msgstr "Breedte" -#: ../src/libgdl/gdl-dock-placeholder.c:170 +#: ../src/libgdl/gdl-dock-placeholder.c:171 msgid "Width for the widget when it's attached to the placeholder" msgstr "Breedte van het widget wanneer het verbonden is met de plaatshouder" -#: ../src/libgdl/gdl-dock-placeholder.c:177 +#: ../src/libgdl/gdl-dock-placeholder.c:178 #: ../src/libgdl/gdl-dock.c:198 -#: ../src/widgets/toolbox.cpp:3346 +#: ../src/widgets/toolbox.cpp:3394 #: ../share/extensions/interp_att_g.inx.h:7 msgid "Height" msgstr "Hoogte" -#: ../src/libgdl/gdl-dock-placeholder.c:178 +#: ../src/libgdl/gdl-dock-placeholder.c:179 msgid "Height for the widget when it's attached to the placeholder" msgstr "Hoogte van het widget wanneer het verbonden is met de plaatshouder" -#: ../src/libgdl/gdl-dock-placeholder.c:184 +#: ../src/libgdl/gdl-dock-placeholder.c:185 msgid "Floating Toplevel" msgstr "Zwevend topniveau" -#: ../src/libgdl/gdl-dock-placeholder.c:185 +#: ../src/libgdl/gdl-dock-placeholder.c:186 msgid "Whether the placeholder is standing in for a floating toplevel dock" msgstr "Of de plaatshouder instaat voor een vlottend paneel op het hoogste niveau" -#: ../src/libgdl/gdl-dock-placeholder.c:191 +#: ../src/libgdl/gdl-dock-placeholder.c:192 msgid "X-Coordinate" msgstr "X-coördinaat" -#: ../src/libgdl/gdl-dock-placeholder.c:192 -msgid "X coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:193 +#, fuzzy +msgid "X-Coordinate for dock when floating" msgstr "X-coördinaat voor zwevend paneel" -#: ../src/libgdl/gdl-dock-placeholder.c:198 +#: ../src/libgdl/gdl-dock-placeholder.c:199 msgid "Y-Coordinate" msgstr "Y-coördinaat" -#: ../src/libgdl/gdl-dock-placeholder.c:199 -msgid "Y coordinate for dock when floating" +#: ../src/libgdl/gdl-dock-placeholder.c:200 +#, fuzzy +msgid "Y-Coordinate for dock when floating" msgstr "Y-coördinaat voor zwevend paneel" -#: ../src/libgdl/gdl-dock-placeholder.c:495 +#: ../src/libgdl/gdl-dock-placeholder.c:498 msgid "Attempt to dock a dock object to an unbound placeholder" msgstr "Probeer een paneelobject aan een ongebonden plaatshouder te verbinden" -#: ../src/libgdl/gdl-dock-placeholder.c:619 +#: ../src/libgdl/gdl-dock-placeholder.c:626 #, c-format msgid "Got a detach signal from an object (%p) who is not our host %p" msgstr "Kreeg een ontkoppelingssignaal van een object (%p) die niet op onze host %p is." -#: ../src/libgdl/gdl-dock-placeholder.c:644 +#: ../src/libgdl/gdl-dock-placeholder.c:651 #, c-format msgid "Something weird happened while getting the child placement for %p from parent %p" msgstr "Iets vreemd gebeurde tijdens het opvragen van de positie van dochter %p van ouder %p" @@ -9143,8 +9301,8 @@ msgid "Dockitem which 'owns' this tablabel" msgstr "Paneelitem die dit tabbladlabel 'beheert'" #: ../src/libgdl/gdl-dock.c:175 -#: ../src/ui/dialog/inkscape-preferences.cpp:590 -#: ../src/ui/dialog/inkscape-preferences.cpp:611 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 +#: ../src/ui/dialog/inkscape-preferences.cpp:612 msgid "Floating" msgstr "Zwevend" @@ -9180,7 +9338,7 @@ msgstr "Zwevend Y" msgid "Y coordinate for a floating dock" msgstr "Y-coördinaat voor een zwevend paneel" -#: ../src/libgdl/gdl-dock.c:499 +#: ../src/libgdl/gdl-dock.c:486 #, c-format msgid "Dock #%d" msgstr "Paneel #%d" @@ -9870,12 +10028,12 @@ msgid "Both" msgstr "Beide" #: ../src/live_effects/lpe-ruler.cpp:35 -#: ../src/widgets/toolbox.cpp:5621 +#: ../src/widgets/toolbox.cpp:5663 msgid "Start" msgstr "Begin" #: ../src/live_effects/lpe-ruler.cpp:36 -#: ../src/widgets/toolbox.cpp:5634 +#: ../src/widgets/toolbox.cpp:5676 msgid "End" msgstr "Einde" @@ -10200,216 +10358,216 @@ msgstr "Niet in staat verb ID '%s' te vinden zoals opgegeven op de commandoregel msgid "Unable to find node ID: '%s'\n" msgstr "Kan node-ID '%s' niet vinden.\n" -#: ../src/main.cpp:263 +#: ../src/main.cpp:262 msgid "Print the Inkscape version number" msgstr "Het versienummer van Inkscape tonen" -#: ../src/main.cpp:268 +#: ../src/main.cpp:267 msgid "Do not use X server (only process files from console)" msgstr "X-server niet gebruiken (alleen bestanden van de terminal verwerken)" -#: ../src/main.cpp:273 +#: ../src/main.cpp:272 msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "X-server proberen te gebruiken (zelfs als $DISPLAY geen waarde heeft)" -#: ../src/main.cpp:278 +#: ../src/main.cpp:277 msgid "Open specified document(s) (option string may be excluded)" msgstr "Gegeven document(en) openen (optie-tekenreeks hoeft niet te worden opgegeven)" -#: ../src/main.cpp:279 -#: ../src/main.cpp:284 -#: ../src/main.cpp:289 -#: ../src/main.cpp:356 -#: ../src/main.cpp:361 -#: ../src/main.cpp:366 -#: ../src/main.cpp:371 -#: ../src/main.cpp:382 +#: ../src/main.cpp:278 +#: ../src/main.cpp:283 +#: ../src/main.cpp:288 +#: ../src/main.cpp:355 +#: ../src/main.cpp:360 +#: ../src/main.cpp:365 +#: ../src/main.cpp:370 +#: ../src/main.cpp:381 msgid "FILENAME" msgstr "BESTANDSNAAM" -#: ../src/main.cpp:283 +#: ../src/main.cpp:282 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "Document(en) afdrukken naar het opgegeven bestand (gebruik '| programma' voor een pijp)" -#: ../src/main.cpp:288 +#: ../src/main.cpp:287 msgid "Export document to a PNG file" msgstr "Document exporteren naar PNG-bestand" -#: ../src/main.cpp:293 +#: ../src/main.cpp:292 msgid "Resolution for exporting to bitmap and for rasterization of filters in PS/EPS/PDF (default 90)" msgstr "Resolutie voor het exporteren van de bitmap en voor rasterisatie van filters in PS/EPS/PDF (standaard 90)" -#: ../src/main.cpp:294 +#: ../src/main.cpp:293 #: ../src/ui/widget/rendering-options.cpp:43 msgid "DPI" msgstr "PPI" -#: ../src/main.cpp:298 +#: ../src/main.cpp:297 msgid "Exported area in SVG user units (default is the page; 0,0 is lower-left corner)" msgstr "Geëxporteerde oppervlakte in SVG-eenheden (standaard de volledige pagina; 0,0 is de hoek linksonder)" -#: ../src/main.cpp:299 +#: ../src/main.cpp:298 msgid "x0:y0:x1:y1" msgstr "x0:y0:x1:y1" -#: ../src/main.cpp:303 +#: ../src/main.cpp:302 msgid "Exported area is the entire drawing (not page)" msgstr "Het geëxporteerde gebied is de volledige tekening (niet de pagina)" -#: ../src/main.cpp:308 +#: ../src/main.cpp:307 msgid "Exported area is the entire page" msgstr "Het geëxporteerde gebied is de volledige pagina" -#: ../src/main.cpp:313 +#: ../src/main.cpp:312 msgid "Snap the bitmap export area outwards to the nearest integer values (in SVG user units)" msgstr "De grootte van het te exporteren bitmap-gebied naar boven afronden op een geheel getal (in SVG-eenheden)" -#: ../src/main.cpp:318 +#: ../src/main.cpp:317 msgid "The width of exported bitmap in pixels (overrides export-dpi)" msgstr "De breedte van de gegenereerde bitmap in pixels (dit negeert de PPI)" -#: ../src/main.cpp:319 +#: ../src/main.cpp:318 msgid "WIDTH" msgstr "BREEDTE" -#: ../src/main.cpp:323 +#: ../src/main.cpp:322 msgid "The height of exported bitmap in pixels (overrides export-dpi)" msgstr "De hoogte van de gegenereerde bitmap in pixels (dit negeert de PPI)" -#: ../src/main.cpp:324 +#: ../src/main.cpp:323 msgid "HEIGHT" msgstr "HOOGTE" -#: ../src/main.cpp:328 +#: ../src/main.cpp:327 msgid "The ID of the object to export" msgstr "Het ID van het te exporteren object" -#: ../src/main.cpp:329 -#: ../src/main.cpp:427 +#: ../src/main.cpp:328 +#: ../src/main.cpp:426 msgid "ID" msgstr "ID" #. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". #. See "man inkscape" for details. -#: ../src/main.cpp:335 +#: ../src/main.cpp:334 msgid "Export just the object with export-id, hide all others (only with export-id)" msgstr "Alleen het object met het gegeven ID exporteren; alle andere objecten verbergen (alleen samen met '--export-id')" -#: ../src/main.cpp:340 +#: ../src/main.cpp:339 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "De opgeslagen bestandsnaam en PPI-hints gebruiken bij het exporteren (alleen samen met '--export-id')" -#: ../src/main.cpp:345 +#: ../src/main.cpp:344 msgid "Background color of exported bitmap (any SVG-supported color string)" msgstr "Achtergrondkleur van de geëxporteerde bitmap (kan iedere door SVG ondersteunde kleur zijn)" -#: ../src/main.cpp:346 +#: ../src/main.cpp:345 msgid "COLOR" msgstr "KLEUR" -#: ../src/main.cpp:350 +#: ../src/main.cpp:349 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "Achtergrondondoorzichtigheid van de geëxporteerde bitmap (ofwel tussen 0.0 en 1.0, of tussen 1 en 255)" -#: ../src/main.cpp:351 +#: ../src/main.cpp:350 msgid "VALUE" msgstr "WAARDE" -#: ../src/main.cpp:355 +#: ../src/main.cpp:354 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "Document exporteren naar gewoon SVG-bestand (geen sodipodi- of inkscape-naamruimte)" -#: ../src/main.cpp:360 +#: ../src/main.cpp:359 msgid "Export document to a PS file" msgstr "Document exporteren naar een PS-bestand" -#: ../src/main.cpp:365 +#: ../src/main.cpp:364 msgid "Export document to an EPS file" msgstr "Document exporteren naar een EPS-bestand" -#: ../src/main.cpp:370 +#: ../src/main.cpp:369 msgid "Export document to a PDF file" msgstr "Document exporteren naar een PDF-bestand" -#: ../src/main.cpp:375 +#: ../src/main.cpp:374 msgid "Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is exported, putting the text on top of the PDF/PS/EPS file. Include the result in LaTeX like: \\input{latexfile.tex}" msgstr "PDF/PS/EPS zonder tekst exporteren. Behalve de PDF/PS/EPS wordt een LaTeX-bestand geëxporteerd dat de tekst op het PDF/PS/EPS-bestand plaatst. Voeg het resultaat in LaTeX in met: \\input{latexfile.tex}" -#: ../src/main.cpp:381 +#: ../src/main.cpp:380 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "Document exporteren naar een EMF-bestand (Enhanced Metafile)" -#: ../src/main.cpp:387 +#: ../src/main.cpp:386 msgid "Convert text object to paths on export (PS, EPS, PDF)" msgstr "Tekst omzetten naar paden bij het exporteren (PS, EPS, PDF)" -#: ../src/main.cpp:392 +#: ../src/main.cpp:391 msgid "Render filtered objects without filters, instead of rasterizing (PS, EPS, PDF)" msgstr "Gefilterde objecten renderen zonder filters in plaats van rasteriseren (PS, EPS, PDF)" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:398 +#: ../src/main.cpp:397 msgid "Query the X coordinate of the drawing or, if specified, of the object with --query-id" msgstr "De X-coördinaat van de tekening opvragen, of - indien opgegeven met --query-id - van het object" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:404 +#: ../src/main.cpp:403 msgid "Query the Y coordinate of the drawing or, if specified, of the object with --query-id" msgstr "De Y-coördinaat van de tekening opvragen, of - indien opgegeven met --query-id - van het object" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:410 +#: ../src/main.cpp:409 msgid "Query the width of the drawing or, if specified, of the object with --query-id" msgstr "De breedte van de tekening opvragen, of - indien opgegeven met --query-id - van het object" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:416 +#: ../src/main.cpp:415 msgid "Query the height of the drawing or, if specified, of the object with --query-id" msgstr "De hoogte van de tekening opvragen, of - indien opgegeven met --query-id - van het object" -#: ../src/main.cpp:421 +#: ../src/main.cpp:420 msgid "List id,x,y,w,h for all objects" msgstr "Lijst id,x,y,b,h van alle objecten" -#: ../src/main.cpp:426 +#: ../src/main.cpp:425 msgid "The ID of the object whose dimensions are queried" msgstr "Het ID van het object waarvan de informatie wordt opgevraagd" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory -#: ../src/main.cpp:432 +#: ../src/main.cpp:431 msgid "Print out the extension directory and exit" msgstr "De naam van de uitbreidingenmap tonen en stoppen" -#: ../src/main.cpp:437 +#: ../src/main.cpp:436 msgid "Remove unused definitions from the defs section(s) of the document" msgstr "Ongebruikte definities uit de 'defs'-onderdelen van het bestand verwijderen" -#: ../src/main.cpp:442 +#: ../src/main.cpp:441 msgid "List the IDs of all the verbs in Inkscape" msgstr "Lijst met ID's van alle verbs in Inkscape" -#: ../src/main.cpp:447 +#: ../src/main.cpp:446 msgid "Verb to call when Inkscape opens." msgstr "Verb om aan te roepen als Inkscape start." -#: ../src/main.cpp:448 +#: ../src/main.cpp:447 msgid "VERB-ID" msgstr "VERB-ID" -#: ../src/main.cpp:452 +#: ../src/main.cpp:451 msgid "Object ID to select when Inkscape opens." msgstr "Te selecteren object-ID wanneer Inkscape opent." -#: ../src/main.cpp:453 +#: ../src/main.cpp:452 msgid "OBJECT-ID" msgstr "OBJECT-ID" -#: ../src/main.cpp:457 +#: ../src/main.cpp:456 msgid "Start Inkscape in interactive shell mode." msgstr "Inkscape in interactieve commandomodus starten." -#: ../src/main.cpp:795 -#: ../src/main.cpp:1121 +#: ../src/main.cpp:791 +#: ../src/main.cpp:1117 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -10438,7 +10596,7 @@ msgid "_Edit" msgstr "Be_werken" #: ../src/menus-skeleton.h:57 -#: ../src/verbs.cpp:2290 +#: ../src/verbs.cpp:2288 msgid "Paste Si_ze" msgstr "_Grootte plakken" @@ -10446,147 +10604,147 @@ msgstr "_Grootte plakken" msgid "Clo_ne" msgstr "_Klonen" -#: ../src/menus-skeleton.h:89 +#: ../src/menus-skeleton.h:90 msgid "_View" msgstr "Beel_d" -#: ../src/menus-skeleton.h:90 +#: ../src/menus-skeleton.h:91 msgid "_Zoom" msgstr "_Zoomen" -#: ../src/menus-skeleton.h:106 +#: ../src/menus-skeleton.h:107 msgid "_Display mode" msgstr "_Afbeeldingsmodus" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:115 +#: ../src/menus-skeleton.h:116 msgid "_Color display mode" msgstr "_Kleurweergavemodus" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:129 +#: ../src/menus-skeleton.h:130 msgid "Sh_ow/Hide" msgstr "_Weergeven/verbergen" #. " \n" #. Not quite ready to be in the menus. #. " \n" -#: ../src/menus-skeleton.h:150 +#: ../src/menus-skeleton.h:151 msgid "_Layer" msgstr "_Laag" -#: ../src/menus-skeleton.h:170 +#: ../src/menus-skeleton.h:171 msgid "_Object" msgstr "_Object" -#: ../src/menus-skeleton.h:177 +#: ../src/menus-skeleton.h:178 msgid "Cli_p" msgstr "Masker_pad" -#: ../src/menus-skeleton.h:181 +#: ../src/menus-skeleton.h:182 msgid "Mas_k" msgstr "Mas_ker" -#: ../src/menus-skeleton.h:185 +#: ../src/menus-skeleton.h:186 msgid "Patter_n" msgstr "Patroo_n" -#: ../src/menus-skeleton.h:209 +#: ../src/menus-skeleton.h:210 msgid "_Path" msgstr "_Paden" -#: ../src/menus-skeleton.h:256 +#: ../src/menus-skeleton.h:257 msgid "Filter_s" msgstr "_Filters" -#: ../src/menus-skeleton.h:262 +#: ../src/menus-skeleton.h:263 msgid "Exte_nsions" msgstr "_Uitbreidingen" -#: ../src/menus-skeleton.h:269 +#: ../src/menus-skeleton.h:270 msgid "Whiteboa_rd" msgstr "_Samenwerken" -#: ../src/menus-skeleton.h:273 +#: ../src/menus-skeleton.h:274 msgid "_Help" msgstr "_Help" -#: ../src/menus-skeleton.h:277 +#: ../src/menus-skeleton.h:278 msgid "Tutorials" msgstr "_Handleidingen" -#: ../src/object-edit.cpp:437 +#: ../src/object-edit.cpp:430 msgid "Adjust the horizontal rounding radius; with Ctrl to make the vertical radius the same" msgstr "De straal van de horizontale afronding van hoeken instellen; gebruik Ctrl om de verticale straal gelijk te maken" -#: ../src/object-edit.cpp:441 +#: ../src/object-edit.cpp:434 msgid "Adjust the vertical rounding radius; with Ctrl to make the horizontal radius the same" msgstr "De straal van de verticale afronding van hoeken instellen; gebruik Ctrl om de horizontale straal gelijk te maken" -#: ../src/object-edit.cpp:445 -#: ../src/object-edit.cpp:449 +#: ../src/object-edit.cpp:438 +#: ../src/object-edit.cpp:442 msgid "Adjust the width and height of the rectangle; with Ctrl to lock ratio or stretch in one dimension only" msgstr "De hoogte en breedte van de rechthoek aanpassen; gebruik Ctrl om de verhouding te vergrendelen of om in één dimensie te schalen" -#: ../src/object-edit.cpp:683 -#: ../src/object-edit.cpp:686 -#: ../src/object-edit.cpp:689 -#: ../src/object-edit.cpp:692 +#: ../src/object-edit.cpp:676 +#: ../src/object-edit.cpp:679 +#: ../src/object-edit.cpp:682 +#: ../src/object-edit.cpp:685 msgid "Resize box in X/Y direction; with Shift along the Z axis; with Ctrl to constrain to the directions of edges or diagonals" msgstr "Verander kubus grootte in X/Y-richting; met Shift over de Z-as; met Ctrl om de richting van randen en diagonalen vast te zetten." -#: ../src/object-edit.cpp:695 -#: ../src/object-edit.cpp:698 -#: ../src/object-edit.cpp:701 -#: ../src/object-edit.cpp:704 +#: ../src/object-edit.cpp:688 +#: ../src/object-edit.cpp:691 +#: ../src/object-edit.cpp:694 +#: ../src/object-edit.cpp:697 msgid "Resize box along the Z axis; with Shift in X/Y direction; with Ctrl to constrain to the directions of edges or diagonals" msgstr "Verander grootte van kubus over de Z-as; met Shift in X/Y-richting; met Ctrl om de richting van randen of diagonalen vast te zetten" -#: ../src/object-edit.cpp:707 +#: ../src/object-edit.cpp:700 msgid "Move the box in perspective" msgstr "De kubus in perspectief verplaatsen" -#: ../src/object-edit.cpp:925 +#: ../src/object-edit.cpp:918 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "De breedte van de ellips aanpassen; gebruik Ctrl om een cirkel te maken" -#: ../src/object-edit.cpp:928 +#: ../src/object-edit.cpp:921 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "De hoogte van de ellips aanpassen; gebruik Ctrl om een cirkel te maken" -#: ../src/object-edit.cpp:931 +#: ../src/object-edit.cpp:924 msgid "Position the start point of the arc or segment; with Ctrl to snap angle; drag inside the ellipse for arc, outside for segment" msgstr "Positioneer het beginpunt van boog of segment; Ctrl om te draaien in stappen; sleep binnen de ellips voor een boog, erbuiten voor een segment" -#: ../src/object-edit.cpp:935 +#: ../src/object-edit.cpp:928 msgid "Position the end point of the arc or segment; with Ctrl to snap angle; drag inside the ellipse for arc, outside for segment" msgstr "Positioneer het eindpunt van boog of segment; Ctrl om te draaien in stappen; sleep binnen de ellips voor een boog, erbuiten voor een segment" -#: ../src/object-edit.cpp:1074 +#: ../src/object-edit.cpp:1067 msgid "Adjust the tip radius of the star or polygon; with Shift to round; with Alt to randomize" msgstr "De puntstraal van ster of veelhoek aanpassen: Shift om af te ronden; Alt voor willekeur" -#: ../src/object-edit.cpp:1081 +#: ../src/object-edit.cpp:1074 msgid "Adjust the base radius of the star; with Ctrl to keep star rays radial (no skew); with Shift to round; with Alt to randomize" msgstr "De binnenstraal van ster of veelhoek aanpassen: Ctrl om de punten radiaal te houden; Shift om af te ronden; Alt voor willekeur" -#: ../src/object-edit.cpp:1270 +#: ../src/object-edit.cpp:1263 msgid "Roll/unroll the spiral from inside; with Ctrl to snap angle; with Alt to converge/diverge" msgstr "De spiraal op- of afrollen langs de binnenkant; Ctrl om te draaien in stappen; Alt om te convergeren/uit te waaieren" -#: ../src/object-edit.cpp:1273 +#: ../src/object-edit.cpp:1266 msgid "Roll/unroll the spiral from outside; with Ctrl to snap angle; with Shift to scale/rotate" msgstr "De spiraal op- of afrollen langs de buitenkant; Ctrl om te draaien in stappen; Shift om te schalen/draaien" -#: ../src/object-edit.cpp:1317 +#: ../src/object-edit.cpp:1310 msgid "Adjust the offset distance" msgstr "De afstand voor verplaatsen aanpassen" -#: ../src/object-edit.cpp:1353 +#: ../src/object-edit.cpp:1346 msgid "Drag to resize the flowed text frame" msgstr "Sleep om het kader van de ingekaderde tekst te schalen" @@ -10926,7 +11084,7 @@ msgid "Unique URI to a related document" msgstr "Een unieke URI naar een gerelateerd document" #: ../src/rdf.cpp:263 -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/ui/dialog/inkscape-preferences.cpp:1317 msgid "Language:" msgstr "Taal:" @@ -11056,360 +11214,360 @@ msgstr "Alt: klik voor onderselectie; scroll muiswiel om de selectie te w msgid "Selected object is not a group. Cannot enter." msgstr "Het geselecteerde object is geen groep. Kan er niet in gaan." -#: ../src/selection-chemistry.cpp:306 +#: ../src/selection-chemistry.cpp:302 msgid "Delete text" msgstr "Tekst verwijderen" -#: ../src/selection-chemistry.cpp:314 +#: ../src/selection-chemistry.cpp:310 msgid "Nothing was deleted." msgstr "Er is niets verwijderd." -#: ../src/selection-chemistry.cpp:332 +#: ../src/selection-chemistry.cpp:328 #: ../src/text-context.cpp:1026 #: ../src/ui/dialog/swatches.cpp:204 #: ../src/ui/dialog/swatches.cpp:267 -#: ../src/widgets/toolbox.cpp:1383 -#: ../src/widgets/toolbox.cpp:6189 +#: ../src/widgets/toolbox.cpp:1385 +#: ../src/widgets/toolbox.cpp:6231 msgid "Delete" msgstr "Verwijderen" -#: ../src/selection-chemistry.cpp:360 +#: ../src/selection-chemistry.cpp:356 msgid "Select object(s) to duplicate." msgstr "Selecteer (een) object(en) om te dupliceren." -#: ../src/selection-chemistry.cpp:461 +#: ../src/selection-chemistry.cpp:457 msgid "Delete all" msgstr "Alles verwijderen" -#: ../src/selection-chemistry.cpp:647 +#: ../src/selection-chemistry.cpp:643 msgid "Select some objects to group." msgstr "Selecteer twee objecten of meer objecten om te groeperen." -#: ../src/selection-chemistry.cpp:662 +#: ../src/selection-chemistry.cpp:658 #: ../src/selection-describer.cpp:52 msgid "Group" msgstr "Groeperen" -#: ../src/selection-chemistry.cpp:676 +#: ../src/selection-chemistry.cpp:672 msgid "Select a group to ungroup." msgstr "Selecteer een groep om op te heffen" -#: ../src/selection-chemistry.cpp:717 +#: ../src/selection-chemistry.cpp:713 msgid "No groups to ungroup in the selection." msgstr "Geen groepen geselecteerd om op te heffen." -#: ../src/selection-chemistry.cpp:723 -#: ../src/sp-item-group.cpp:503 +#: ../src/selection-chemistry.cpp:719 +#: ../src/sp-item-group.cpp:501 msgid "Ungroup" msgstr "Groep opheffen" -#: ../src/selection-chemistry.cpp:809 +#: ../src/selection-chemistry.cpp:805 msgid "Select object(s) to raise." msgstr "Selecteer object(en) om naar boven te brengen." -#: ../src/selection-chemistry.cpp:815 -#: ../src/selection-chemistry.cpp:875 -#: ../src/selection-chemistry.cpp:909 -#: ../src/selection-chemistry.cpp:973 +#: ../src/selection-chemistry.cpp:811 +#: ../src/selection-chemistry.cpp:871 +#: ../src/selection-chemistry.cpp:905 +#: ../src/selection-chemistry.cpp:969 msgid "You cannot raise/lower objects from different groups or layers." msgstr "U kunt geen object uit verschillende groepen of lagen naar boven brengen of naar onder sturen." #. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:855 +#: ../src/selection-chemistry.cpp:851 msgctxt "Undo action" msgid "Raise" msgstr "Verhogen" -#: ../src/selection-chemistry.cpp:867 +#: ../src/selection-chemistry.cpp:863 msgid "Select object(s) to raise to top." msgstr "Selecteer objecten die u helemaal naar boven wilt brengen." -#: ../src/selection-chemistry.cpp:890 +#: ../src/selection-chemistry.cpp:886 msgid "Raise to top" msgstr "Bovenaan" -#: ../src/selection-chemistry.cpp:903 +#: ../src/selection-chemistry.cpp:899 msgid "Select object(s) to lower." msgstr "Selecteer objecten die u naar onderen wilt brengen." -#: ../src/selection-chemistry.cpp:953 +#: ../src/selection-chemistry.cpp:949 msgid "Lower" msgstr "Omlaag" -#: ../src/selection-chemistry.cpp:965 +#: ../src/selection-chemistry.cpp:961 msgid "Select object(s) to lower to bottom." msgstr "Selecteer objecten die u naar helemaal naar onderen wilt sturen." -#: ../src/selection-chemistry.cpp:1000 +#: ../src/selection-chemistry.cpp:996 msgid "Lower to bottom" msgstr "Onderaan" -#: ../src/selection-chemistry.cpp:1007 +#: ../src/selection-chemistry.cpp:1003 msgid "Nothing to undo." msgstr "Er is niets om ongedaan te maken." -#: ../src/selection-chemistry.cpp:1015 +#: ../src/selection-chemistry.cpp:1011 msgid "Nothing to redo." msgstr "Er is niets om opnieuw te doen." -#: ../src/selection-chemistry.cpp:1076 +#: ../src/selection-chemistry.cpp:1072 msgid "Paste" msgstr "Plakken" -#: ../src/selection-chemistry.cpp:1084 +#: ../src/selection-chemistry.cpp:1080 msgid "Paste style" msgstr "Stijl plakken" -#: ../src/selection-chemistry.cpp:1094 +#: ../src/selection-chemistry.cpp:1090 msgid "Paste live path effect" msgstr "Padeffect plakken" -#: ../src/selection-chemistry.cpp:1115 +#: ../src/selection-chemistry.cpp:1111 msgid "Select object(s) to remove live path effects from." msgstr "Selecteer object(en) om padeffect van te verwijderen." -#: ../src/selection-chemistry.cpp:1127 +#: ../src/selection-chemistry.cpp:1123 msgid "Remove live path effect" msgstr "Padeffect verwijderen" -#: ../src/selection-chemistry.cpp:1138 +#: ../src/selection-chemistry.cpp:1134 msgid "Select object(s) to remove filters from." msgstr "Selecteer object(en) om filters van te verwijderen." -#: ../src/selection-chemistry.cpp:1148 +#: ../src/selection-chemistry.cpp:1144 #: ../src/ui/dialog/filter-effects-dialog.cpp:1352 msgid "Remove filter" msgstr "Verwijder filter" -#: ../src/selection-chemistry.cpp:1157 +#: ../src/selection-chemistry.cpp:1153 msgid "Paste size" msgstr "Grootte plakken" -#: ../src/selection-chemistry.cpp:1166 +#: ../src/selection-chemistry.cpp:1162 msgid "Paste size separately" msgstr "Grootte apart plakken" -#: ../src/selection-chemistry.cpp:1176 +#: ../src/selection-chemistry.cpp:1172 msgid "Select object(s) to move to the layer above." msgstr "Selecteer objecten om naar de bovenliggende laag te verplaatsen." -#: ../src/selection-chemistry.cpp:1202 +#: ../src/selection-chemistry.cpp:1198 msgid "Raise to next layer" msgstr "Verhoog naar de volgende laag" -#: ../src/selection-chemistry.cpp:1209 +#: ../src/selection-chemistry.cpp:1205 msgid "No more layers above." msgstr "Er zijn geen bovenliggende lagen." -#: ../src/selection-chemistry.cpp:1221 +#: ../src/selection-chemistry.cpp:1217 msgid "Select object(s) to move to the layer below." msgstr "Selecteer objecten om naar de onderliggende laag te verplaatsen." -#: ../src/selection-chemistry.cpp:1247 +#: ../src/selection-chemistry.cpp:1243 msgid "Lower to previous layer" msgstr "Verlaag naar de vorige laag" -#: ../src/selection-chemistry.cpp:1254 +#: ../src/selection-chemistry.cpp:1250 msgid "No more layers below." msgstr "Er zijn geen onderliggende lagen." -#: ../src/selection-chemistry.cpp:1477 +#: ../src/selection-chemistry.cpp:1473 msgid "Remove transform" msgstr "Transformatie verwijderen" -#: ../src/selection-chemistry.cpp:1580 +#: ../src/selection-chemistry.cpp:1576 msgid "Rotate 90° CCW" msgstr "90 graden draaien; TKI" -#: ../src/selection-chemistry.cpp:1580 +#: ../src/selection-chemistry.cpp:1576 msgid "Rotate 90° CW" msgstr "90 graden draaien; MKM" -#: ../src/selection-chemistry.cpp:1601 +#: ../src/selection-chemistry.cpp:1597 #: ../src/seltrans.cpp:517 -#: ../src/ui/dialog/transformation.cpp:771 +#: ../src/ui/dialog/transformation.cpp:770 msgid "Rotate" msgstr "Roteren" -#: ../src/selection-chemistry.cpp:1648 +#: ../src/selection-chemistry.cpp:1644 msgid "Rotate by pixels" msgstr "Per pixel draaien" -#: ../src/selection-chemistry.cpp:1678 +#: ../src/selection-chemistry.cpp:1674 #: ../src/seltrans.cpp:514 -#: ../src/ui/dialog/transformation.cpp:749 +#: ../src/ui/dialog/transformation.cpp:748 #: ../share/extensions/interp_att_g.inx.h:19 msgid "Scale" msgstr "Schalen" -#: ../src/selection-chemistry.cpp:1703 +#: ../src/selection-chemistry.cpp:1699 msgid "Scale by whole factor" msgstr "Met een hele factor schalen" -#: ../src/selection-chemistry.cpp:1718 +#: ../src/selection-chemistry.cpp:1714 msgid "Move vertically" msgstr "Verticaal verplaatsen" -#: ../src/selection-chemistry.cpp:1721 +#: ../src/selection-chemistry.cpp:1717 msgid "Move horizontally" msgstr "Horizontaal verplaatsen" -#: ../src/selection-chemistry.cpp:1724 -#: ../src/selection-chemistry.cpp:1750 +#: ../src/selection-chemistry.cpp:1720 +#: ../src/selection-chemistry.cpp:1746 #: ../src/seltrans.cpp:511 -#: ../src/ui/dialog/transformation.cpp:692 +#: ../src/ui/dialog/transformation.cpp:691 msgid "Move" msgstr "Verplaatsen" -#: ../src/selection-chemistry.cpp:1744 +#: ../src/selection-chemistry.cpp:1740 msgid "Move vertically by pixels" msgstr "Verticaal verplaatsen per pixels" -#: ../src/selection-chemistry.cpp:1747 +#: ../src/selection-chemistry.cpp:1743 msgid "Move horizontally by pixels" msgstr "Horizontaal verplaatsen per pixels" -#: ../src/selection-chemistry.cpp:1879 +#: ../src/selection-chemistry.cpp:1875 msgid "The selection has no applied path effect." msgstr "De selectie bevat geen toegepast padeffect." -#: ../src/selection-chemistry.cpp:2082 +#: ../src/selection-chemistry.cpp:2078 msgctxt "Action" msgid "Clone" msgstr "Kloon" -#: ../src/selection-chemistry.cpp:2098 +#: ../src/selection-chemistry.cpp:2094 msgid "Select clones to relink." msgstr "Selecteer klonen om te herlinken." -#: ../src/selection-chemistry.cpp:2105 +#: ../src/selection-chemistry.cpp:2101 msgid "Copy an object to clipboard to relink clones to." msgstr "Een object naar het klembord kopiëren om klonen naar te herlinken" -#: ../src/selection-chemistry.cpp:2129 +#: ../src/selection-chemistry.cpp:2125 msgid "No clones to relink in the selection." msgstr "Geen klonen om te herlinken in de selectie" -#: ../src/selection-chemistry.cpp:2132 +#: ../src/selection-chemistry.cpp:2128 msgid "Relink clone" msgstr "Kloon herlinken" -#: ../src/selection-chemistry.cpp:2146 +#: ../src/selection-chemistry.cpp:2142 msgid "Select clones to unlink." msgstr "Selecteer klonen om te ontlinken." -#: ../src/selection-chemistry.cpp:2200 +#: ../src/selection-chemistry.cpp:2196 msgid "No clones to unlink in the selection." msgstr "Geen klonen geselecteerd om te ontkoppelen." -#: ../src/selection-chemistry.cpp:2204 +#: ../src/selection-chemistry.cpp:2200 msgid "Unlink clone" msgstr "Kloon ontkoppelen" -#: ../src/selection-chemistry.cpp:2217 +#: ../src/selection-chemistry.cpp:2213 msgid "Select a clone to go to its original. Select a linked offset to go to its source. Select a text on path to go to the path. Select a flowed text to go to its frame." msgstr "Selecteer een kloon om naar zijn origineel te gaan. Selecteer een gekoppelde offset om naar zijn bron te gaan. Selecteer tekst op een pad om naar het pad te gaan. Selecteer ingekaderde tekst om naar het vormende object te gaan." -#: ../src/selection-chemistry.cpp:2240 +#: ../src/selection-chemistry.cpp:2236 msgid "Cannot find the object to select (orphaned clone, offset, textpath, flowed text?)" msgstr "Het te selecteren object is onvindbaar (verweesde kloon, offset, tekstpad of ingekaderde tekst?)" -#: ../src/selection-chemistry.cpp:2246 +#: ../src/selection-chemistry.cpp:2242 msgid "The object you're trying to select is not visible (it is in <defs>)" msgstr "Het object dat u probeert te selecteren is niet zichtbaar (het staat in <defs>)" -#: ../src/selection-chemistry.cpp:2293 +#: ../src/selection-chemistry.cpp:2289 msgid "Select object(s) to convert to marker." msgstr "Selecteer eerst de objecten om te converteren naar een markering." -#: ../src/selection-chemistry.cpp:2361 +#: ../src/selection-chemistry.cpp:2357 msgid "Objects to marker" msgstr "Objecten naar markering" -#: ../src/selection-chemistry.cpp:2389 +#: ../src/selection-chemistry.cpp:2385 msgid "Select object(s) to convert to guides." msgstr "Selecteer eerst de objecten om te converteren naar hulplijnen." -#: ../src/selection-chemistry.cpp:2401 +#: ../src/selection-chemistry.cpp:2397 msgid "Objects to guides" msgstr "Objecten naar hulplijnen" -#: ../src/selection-chemistry.cpp:2418 +#: ../src/selection-chemistry.cpp:2414 msgid "Select object(s) to convert to pattern." msgstr "Selecteer eerst de objecten om te converteren naar een patroon." -#: ../src/selection-chemistry.cpp:2506 +#: ../src/selection-chemistry.cpp:2502 msgid "Objects to pattern" msgstr "Objecten naar patroon" -#: ../src/selection-chemistry.cpp:2522 +#: ../src/selection-chemistry.cpp:2518 msgid "Select an object with pattern fill to extract objects from." msgstr "Selecteer objecten met patroonvulling om objecten uit te halen." -#: ../src/selection-chemistry.cpp:2575 +#: ../src/selection-chemistry.cpp:2571 msgid "No pattern fills in the selection." msgstr "Er zijn geen objecten met patroonvulling geselecteerd." -#: ../src/selection-chemistry.cpp:2578 +#: ../src/selection-chemistry.cpp:2574 msgid "Pattern to objects" msgstr "Patroon naar objecten" -#: ../src/selection-chemistry.cpp:2660 +#: ../src/selection-chemistry.cpp:2656 msgid "Select object(s) to make a bitmap copy." msgstr "Selecteer eerst de objecten om een bitmapkopie van te maken." -#: ../src/selection-chemistry.cpp:2664 +#: ../src/selection-chemistry.cpp:2660 msgid "Rendering bitmap..." msgstr "Renderen van bitmap..." -#: ../src/selection-chemistry.cpp:2838 +#: ../src/selection-chemistry.cpp:2834 msgid "Create bitmap" msgstr "Bitmap maken" -#: ../src/selection-chemistry.cpp:2870 +#: ../src/selection-chemistry.cpp:2866 msgid "Select object(s) to create clippath or mask from." msgstr "Selecteer de objecten om een afsnijpad/masker van te maken." -#: ../src/selection-chemistry.cpp:2873 +#: ../src/selection-chemistry.cpp:2869 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "Selecteer het maskerobject en de object(en) om het afsnijpad/masker op toe te passen." -#: ../src/selection-chemistry.cpp:3054 +#: ../src/selection-chemistry.cpp:3050 msgid "Set clipping path" msgstr "Afsnijpad inschakelen" -#: ../src/selection-chemistry.cpp:3056 +#: ../src/selection-chemistry.cpp:3052 msgid "Set mask" msgstr "Masker inschakelen" -#: ../src/selection-chemistry.cpp:3071 +#: ../src/selection-chemistry.cpp:3067 msgid "Select object(s) to remove clippath or mask from." msgstr "Selecteer object(en) om het afsnijpad/masker van uit te schakelen." -#: ../src/selection-chemistry.cpp:3182 +#: ../src/selection-chemistry.cpp:3178 msgid "Release clipping path" msgstr "Afsnijpad uitschakelen" -#: ../src/selection-chemistry.cpp:3184 +#: ../src/selection-chemistry.cpp:3180 msgid "Release mask" msgstr "Masker uitschakelen" -#: ../src/selection-chemistry.cpp:3203 +#: ../src/selection-chemistry.cpp:3199 msgid "Select object(s) to fit canvas to." msgstr "Selecteer object(en) voor aanpassing van het canvas" #. Fit Page -#: ../src/selection-chemistry.cpp:3223 +#: ../src/selection-chemistry.cpp:3219 #: ../src/verbs.cpp:2747 msgid "Fit Page to Selection" msgstr "Pagina naar selectie schalen" -#: ../src/selection-chemistry.cpp:3252 +#: ../src/selection-chemistry.cpp:3248 #: ../src/verbs.cpp:2749 msgid "Fit Page to Drawing" msgstr "Pagina naar tekening schalen" -#: ../src/selection-chemistry.cpp:3273 +#: ../src/selection-chemistry.cpp:3269 #: ../src/verbs.cpp:2751 msgid "Fit Page to Selection or Drawing" msgstr "Pagina naar selectie of inhoud schalen" @@ -11427,9 +11585,9 @@ msgstr "Cirkel" #. Ellipse #: ../src/selection-describer.cpp:48 #: ../src/selection-describer.cpp:73 -#: ../src/ui/dialog/inkscape-preferences.cpp:509 +#: ../src/ui/dialog/inkscape-preferences.cpp:510 #: ../src/verbs.cpp:2514 -#: ../src/widgets/toolbox.cpp:4126 +#: ../src/widgets/toolbox.cpp:4174 msgid "Ellipse" msgstr "Ellips" @@ -11446,7 +11604,7 @@ msgid "Path" msgstr "Pad" #: ../src/selection-describer.cpp:60 -#: ../src/widgets/toolbox.cpp:2967 +#: ../src/widgets/toolbox.cpp:3015 msgid "Polygon" msgstr "Veelhoek" @@ -11456,14 +11614,14 @@ msgstr "Veellijn" #. Rectangle #: ../src/selection-describer.cpp:64 -#: ../src/ui/dialog/inkscape-preferences.cpp:499 +#: ../src/ui/dialog/inkscape-preferences.cpp:500 #: ../src/verbs.cpp:2510 msgid "Rectangle" msgstr "Rechthoek" #. 3D box #: ../src/selection-describer.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:504 +#: ../src/ui/dialog/inkscape-preferences.cpp:505 #: ../src/verbs.cpp:2512 msgid "3D Box" msgstr "3D-kubus" @@ -11474,7 +11632,7 @@ msgstr "3D-kubus" #. this->AddNewObjectsStyle(_page_lpetool, "/tools/lpetool"); #. Text #: ../src/selection-describer.cpp:68 -#: ../src/ui/dialog/inkscape-preferences.cpp:558 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 #: ../src/verbs.cpp:2526 #: ../share/extensions/lorem_ipsum.inx.h:7 #: ../share/extensions/replace_font.inx.h:10 @@ -11497,21 +11655,23 @@ msgid "Clone" msgstr "Kloon" #: ../src/selection-describer.cpp:75 +#: ../share/extensions/gcodetools_lathe.inx.h:31 msgid "Offset path" msgstr "Rand object" #. Spiral #: ../src/selection-describer.cpp:77 -#: ../src/ui/dialog/inkscape-preferences.cpp:517 +#: ../src/ui/dialog/inkscape-preferences.cpp:518 #: ../src/verbs.cpp:2518 +#: ../share/extensions/gcodetools_area.inx.h:45 msgid "Spiral" msgstr "Spiraal" #. Star #: ../src/selection-describer.cpp:79 -#: ../src/ui/dialog/inkscape-preferences.cpp:513 +#: ../src/ui/dialog/inkscape-preferences.cpp:514 #: ../src/verbs.cpp:2516 -#: ../src/widgets/toolbox.cpp:2974 +#: ../src/widgets/toolbox.cpp:3022 msgid "Star" msgstr "Ster" @@ -11572,8 +11732,8 @@ msgstr "Gebruik Shift+D om het kaderobject te vinden" #. this is only used with 2 or more objects #: ../src/selection-describer.cpp:209 -#: ../src/spray-context.cpp:230 -#: ../src/tweak-context.cpp:206 +#: ../src/spray-context.cpp:226 +#: ../src/tweak-context.cpp:203 #, c-format msgid "%i object selected" msgid_plural "%i objects selected" @@ -11618,7 +11778,7 @@ msgid "%s%s. %s." msgstr "%s%s. %s." #: ../src/seltrans.cpp:520 -#: ../src/ui/dialog/transformation.cpp:830 +#: ../src/ui/dialog/transformation.cpp:829 msgid "Skew" msgstr "Scheeftrekken" @@ -11693,20 +11853,20 @@ msgstr "Koppeling naar %s" msgid "Link without URI" msgstr "Koppeling zonder URI" -#: ../src/sp-ellipse.cpp:506 -#: ../src/sp-ellipse.cpp:883 +#: ../src/sp-ellipse.cpp:504 +#: ../src/sp-ellipse.cpp:881 msgid "Ellipse" msgstr "Ellips" -#: ../src/sp-ellipse.cpp:647 +#: ../src/sp-ellipse.cpp:645 msgid "Circle" msgstr "Cirkel" -#: ../src/sp-ellipse.cpp:878 +#: ../src/sp-ellipse.cpp:876 msgid "Segment" msgstr "Segment" -#: ../src/sp-ellipse.cpp:880 +#: ../src/sp-ellipse.cpp:878 msgid "Arc" msgstr "Boog" @@ -11725,75 +11885,80 @@ msgstr "Gebied met tekstvormen" msgid "Flow excluded region" msgstr "Gebied zonder tekstvormen" -#: ../src/sp-guide.cpp:299 -msgid "Guides Around Page" -msgstr "Hulplijnen rond pagina" +#: ../src/sp-guide.cpp:307 +msgid "Create Guides Around the Page" +msgstr "Hulplijnen rond pagina maken" + +#: ../src/sp-guide.cpp:319 +#: ../src/verbs.cpp:2346 +msgid "Delete All Guides" +msgstr "Alle hulplijnen verwijderen" -#: ../src/sp-guide.cpp:444 +#: ../src/sp-guide.cpp:481 msgid "Shift+drag to rotate, Ctrl+drag to move origin, Del to delete" msgstr "Shift+sleep om te draaien, Ctrl+sleep om de oorsprong te verplaatsen, Del om te verwijderen" -#: ../src/sp-guide.cpp:449 +#: ../src/sp-guide.cpp:486 #, c-format msgid "vertical, at %s" msgstr "verticaal, op %s" -#: ../src/sp-guide.cpp:452 +#: ../src/sp-guide.cpp:489 #, c-format msgid "horizontal, at %s" msgstr "horizontaal, op %s" -#: ../src/sp-guide.cpp:457 +#: ../src/sp-guide.cpp:494 #, c-format msgid "at %d degrees, through (%s,%s)" msgstr "op %d graden, door (%s,%s)" -#: ../src/sp-image.cpp:1134 +#: ../src/sp-image.cpp:1133 msgid "embedded" msgstr "ingevoegd" -#: ../src/sp-image.cpp:1142 +#: ../src/sp-image.cpp:1141 #, c-format msgid "Image with bad reference: %s" msgstr "Afbeelding met ongeldige referentie: %s" -#: ../src/sp-image.cpp:1143 +#: ../src/sp-image.cpp:1142 #, c-format msgid "Image %d × %d: %s" msgstr "Afbeelding %d × %d: %s" -#: ../src/sp-item-group.cpp:744 +#: ../src/sp-item-group.cpp:742 #, c-format msgid "Group of %d object" msgid_plural "Group of %d objects" msgstr[0] "Groep van %d object" msgstr[1] "Groep van %d objecten" -#: ../src/sp-item.cpp:988 +#: ../src/sp-item.cpp:983 msgid "Object" msgstr "Object" -#: ../src/sp-item.cpp:1001 +#: ../src/sp-item.cpp:996 #, c-format msgid "%s; clipped" msgstr "%s; afgesneden" -#: ../src/sp-item.cpp:1006 +#: ../src/sp-item.cpp:1001 #, c-format msgid "%s; masked" msgstr "%s; gemaskeerd" -#: ../src/sp-item.cpp:1014 +#: ../src/sp-item.cpp:1009 #, c-format msgid "%s; filtered (%s)" msgstr "%s; gefilterd (%s)" -#: ../src/sp-item.cpp:1016 +#: ../src/sp-item.cpp:1011 #, c-format msgid "%s; filtered" msgstr "%s; gefilterd" -#: ../src/sp-line.cpp:175 +#: ../src/sp-line.cpp:174 msgid "Line" msgstr "Lijn" @@ -11823,14 +11988,14 @@ msgstr "vernauwing" msgid "Dynamic offset, %s by %f pt" msgstr "Dynamische offset, %s met %f pt" -#: ../src/sp-path.cpp:155 +#: ../src/sp-path.cpp:154 #, c-format msgid "Path (%i node, path effect: %s)" msgid_plural "Path (%i nodes, path effect: %s)" msgstr[0] "Pad (%i knooppunt, padeffect: %s)" msgstr[1] "Pad (%i knooppunten, padeffect: %s)" -#: ../src/sp-path.cpp:158 +#: ../src/sp-path.cpp:157 #, c-format msgid "Path (%i node)" msgid_plural "Path (%i nodes)" @@ -11845,7 +12010,7 @@ msgstr "Veelhoek" msgid "Polyline" msgstr "Veellijn" -#: ../src/sp-rect.cpp:223 +#: ../src/sp-rect.cpp:221 msgid "Rectangle" msgstr "Rechthoek" @@ -11856,14 +12021,14 @@ msgstr "Rechthoek" msgid "Spiral with %3f turns" msgstr "Spiraal met %3f omwentelingen" -#: ../src/sp-star.cpp:308 +#: ../src/sp-star.cpp:309 #, c-format msgid "Star with %d vertex" msgid_plural "Star with %d vertices" msgstr[0] "Ster met %d punt" msgstr[1] "Ster met %d punten" -#: ../src/sp-star.cpp:312 +#: ../src/sp-star.cpp:313 #, c-format msgid "Polygon with %d vertex" msgid_plural "Polygon with %d vertices" @@ -11871,49 +12036,49 @@ msgstr[0] "Veelhoek met %d hoek" msgstr[1] "Veelhoek met %d hoeken" #. TRANSLATORS: For description of font with no name. -#: ../src/sp-text.cpp:427 +#: ../src/sp-text.cpp:426 msgid "<no name found>" msgstr "<geen naam gevonden>" -#: ../src/sp-text.cpp:439 +#: ../src/sp-text.cpp:438 #, c-format msgid "Text on path%s (%s, %s)" msgstr "Tekst op een pad%s (%s, %s)" -#: ../src/sp-text.cpp:440 +#: ../src/sp-text.cpp:439 #, c-format msgid "Text%s (%s, %s)" msgstr "Tekst%s (%s, %s)" -#: ../src/sp-tref.cpp:372 +#: ../src/sp-tref.cpp:371 #, c-format msgid "Cloned character data%s%s" msgstr "Gekloonde tekst%s%s" -#: ../src/sp-tref.cpp:373 +#: ../src/sp-tref.cpp:372 msgid " from " msgstr " van " -#: ../src/sp-tref.cpp:378 +#: ../src/sp-tref.cpp:377 msgid "Orphaned cloned character data" msgstr "Verweesde gekloonde tekst" -#: ../src/sp-tspan.cpp:292 +#: ../src/sp-tspan.cpp:291 msgid "Text span" msgstr "Tekstbreedte" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:335 +#: ../src/sp-use.cpp:333 msgid "..." msgstr "..." -#: ../src/sp-use.cpp:343 +#: ../src/sp-use.cpp:341 #, c-format msgid "Clone of: %s" msgstr "Kloon van %s" -#: ../src/sp-use.cpp:347 +#: ../src/sp-use.cpp:345 msgid "Orphaned clone" msgstr "Verweesde kloon" @@ -11934,162 +12099,162 @@ msgstr "Spiraal: straal %s, hoek %5g°; gebruik Ctrl om in sta msgid "Create spiral" msgstr "Spiraal maken" -#: ../src/splivarot.cpp:67 -#: ../src/splivarot.cpp:73 +#: ../src/splivarot.cpp:66 +#: ../src/splivarot.cpp:72 msgid "Union" msgstr "Vereniging" -#: ../src/splivarot.cpp:79 +#: ../src/splivarot.cpp:78 msgid "Intersection" msgstr "Overlap" -#: ../src/splivarot.cpp:85 -#: ../src/splivarot.cpp:91 +#: ../src/splivarot.cpp:84 +#: ../src/splivarot.cpp:90 msgid "Difference" msgstr "Verschil" -#: ../src/splivarot.cpp:97 +#: ../src/splivarot.cpp:96 msgid "Exclusion" msgstr "Uitsluiten" -#: ../src/splivarot.cpp:102 +#: ../src/splivarot.cpp:101 msgid "Division" msgstr "Splitsen" -#: ../src/splivarot.cpp:107 +#: ../src/splivarot.cpp:106 msgid "Cut path" msgstr "Pad versnijden" -#: ../src/splivarot.cpp:122 +#: ../src/splivarot.cpp:121 msgid "Select at least 2 paths to perform a boolean operation." msgstr "Selecteer minstens twee paden om een booleaanse bewerking uit te voeren." -#: ../src/splivarot.cpp:126 +#: ../src/splivarot.cpp:125 msgid "Select at least 1 path to perform a boolean union." msgstr "Selecteer minstens één pad om een booleaanse vereniging uit te voeren." -#: ../src/splivarot.cpp:132 +#: ../src/splivarot.cpp:131 msgid "Select exactly 2 paths to perform difference, division, or path cut." msgstr "Selecteer precies twee paden om een verschil, uitsluiting, splitsing of padversnijding uit te voeren." -#: ../src/splivarot.cpp:148 -#: ../src/splivarot.cpp:163 +#: ../src/splivarot.cpp:147 +#: ../src/splivarot.cpp:162 msgid "Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut." msgstr "Er kon niet worden bepaald welk object boven de andere lag om een verschil, uitsluiting, splitsing of pad-snijding uit te voeren." -#: ../src/splivarot.cpp:193 +#: ../src/splivarot.cpp:192 msgid "One of the objects is not a path, cannot perform boolean operation." msgstr "Een van de geselecteerde objecten is geen pad, de booleaansche bewerking kan niet worden uitgevoerd." -#: ../src/splivarot.cpp:906 +#: ../src/splivarot.cpp:905 msgid "Select stroked path(s) to convert stroke to path." msgstr "Selecteer paden waarvan de omlijning omgezet moet worden naar een pad." -#: ../src/splivarot.cpp:1259 +#: ../src/splivarot.cpp:1258 msgid "Convert stroke to path" msgstr "Omlijning omzetten naar pad" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1262 +#: ../src/splivarot.cpp:1261 msgid "No stroked paths in the selection." msgstr "Er zijn geen omlijnde paden geselecteerd." -#: ../src/splivarot.cpp:1345 +#: ../src/splivarot.cpp:1344 msgid "Selected object is not a path, cannot inset/outset." msgstr "Het geselecteerde object is geen pad, en kan dus niet versmalt/verbreed worden." -#: ../src/splivarot.cpp:1464 -#: ../src/splivarot.cpp:1532 +#: ../src/splivarot.cpp:1463 +#: ../src/splivarot.cpp:1531 msgid "Create linked offset" msgstr "Gekoppelde offset maken" -#: ../src/splivarot.cpp:1465 -#: ../src/splivarot.cpp:1533 +#: ../src/splivarot.cpp:1464 +#: ../src/splivarot.cpp:1532 msgid "Create dynamic offset" msgstr "Dynamische offset maken" -#: ../src/splivarot.cpp:1558 +#: ../src/splivarot.cpp:1557 msgid "Select path(s) to inset/outset." msgstr "Selecteer de paden om te versmallen/verbreden." -#: ../src/splivarot.cpp:1775 +#: ../src/splivarot.cpp:1774 msgid "Outset path" msgstr "Pad verbreden" -#: ../src/splivarot.cpp:1775 +#: ../src/splivarot.cpp:1774 msgid "Inset path" msgstr "Pad versmallen" -#: ../src/splivarot.cpp:1777 +#: ../src/splivarot.cpp:1776 msgid "No paths to inset/outset in the selection." msgstr "Er zijn geen paden geselecteerd om te vernauwen/verwijden." -#: ../src/splivarot.cpp:1939 +#: ../src/splivarot.cpp:1938 msgid "Simplifying paths (separately):" msgstr "Vereenvoudigen van paden (apart):" -#: ../src/splivarot.cpp:1941 +#: ../src/splivarot.cpp:1940 msgid "Simplifying paths:" msgstr "Vereenvoudigen van paden:" -#: ../src/splivarot.cpp:1978 +#: ../src/splivarot.cpp:1977 #, c-format msgid "%s %d of %d paths simplified..." msgstr "%s %d van %d paden vereenvoudigd..." -#: ../src/splivarot.cpp:1990 +#: ../src/splivarot.cpp:1989 #, c-format msgid "%d paths simplified." msgstr "%d paden zijn vereenvoudigd." -#: ../src/splivarot.cpp:2004 +#: ../src/splivarot.cpp:2003 msgid "Select path(s) to simplify." msgstr "Selecteer paden om te vereenvoudigen." -#: ../src/splivarot.cpp:2018 +#: ../src/splivarot.cpp:2017 msgid "Simplify" msgstr "Vereenvoudigen" -#: ../src/splivarot.cpp:2020 +#: ../src/splivarot.cpp:2019 msgid "No paths to simplify in the selection." msgstr "Er zijn geen paden geselecteerd om te vereenvoudigen." -#: ../src/spray-context.cpp:232 -#: ../src/tweak-context.cpp:208 +#: ../src/spray-context.cpp:228 +#: ../src/tweak-context.cpp:205 #, c-format msgid "Nothing selected" msgstr "Er is niets geselecteerd." -#: ../src/spray-context.cpp:238 +#: ../src/spray-context.cpp:234 #, c-format msgid "%s. Drag, click or scroll to spray copies of the initial selection." msgstr "%s. Sleep, klik of scroll om kopieën van de initiële selectie te verstuiven." -#: ../src/spray-context.cpp:241 +#: ../src/spray-context.cpp:237 #, c-format msgid "%s. Drag, click or scroll to spray clones of the initial selection." msgstr "%s. Sleep, klik of scroll om klonen van de initiële selectie te verstuiven." -#: ../src/spray-context.cpp:244 +#: ../src/spray-context.cpp:240 #, c-format msgid "%s. Drag, click or scroll to spray in a single path of the initial selection." msgstr "%s. Sleep, klik of scroll om de initiële selectie in een enkele richting te verstuiven." -#: ../src/spray-context.cpp:710 +#: ../src/spray-context.cpp:706 msgid "Nothing selected! Select objects to spray." msgstr "Niets geselecteerd! Selecteer objecten voor verstuiving." -#: ../src/spray-context.cpp:785 -#: ../src/widgets/toolbox.cpp:4717 +#: ../src/spray-context.cpp:781 +#: ../src/widgets/toolbox.cpp:4759 msgid "Spray with copies" -msgstr "Met kopieën verstuiven" +msgstr "Verstuiven met kopieën" -#: ../src/spray-context.cpp:789 -#: ../src/widgets/toolbox.cpp:4724 +#: ../src/spray-context.cpp:785 +#: ../src/widgets/toolbox.cpp:4766 msgid "Spray with clones" -msgstr "Met klonen verstuiven" +msgstr "Verstuiven met klonen" -#: ../src/spray-context.cpp:793 +#: ../src/spray-context.cpp:789 msgid "Spray in single path" msgstr "Verstuiven in één richting" @@ -12111,79 +12276,79 @@ msgstr "Ster: straal %s, hoek %5g°; gebruik Ctrl om in stappe msgid "Create star" msgstr "Ster maken" -#: ../src/text-chemistry.cpp:105 +#: ../src/text-chemistry.cpp:104 msgid "Select a text and a path to put text on path." msgstr "Selecteer tekst en pad om de tekst op het pad te zetten." -#: ../src/text-chemistry.cpp:110 +#: ../src/text-chemistry.cpp:109 msgid "This text object is already put on a path. Remove it from the path first. Use Shift+D to look up its path." msgstr "Deze tekst is reeds op een pad geplaatst. Verwijder het eerst van dat pad. Gebruik Shift+D om zijn pad op te zoeken." #. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:116 +#: ../src/text-chemistry.cpp:115 msgid "You cannot put text on a rectangle in this version. Convert rectangle to path first." msgstr "U kunt tekst niet op een rechthoek plaatsten met deze versie. Converteer de rechthoek eerst naar een pad." -#: ../src/text-chemistry.cpp:126 +#: ../src/text-chemistry.cpp:125 msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "Ingekaderde tekst moet zichtbaar zijn om deze op een pad te kunnen zetten." -#: ../src/text-chemistry.cpp:194 +#: ../src/text-chemistry.cpp:193 #: ../src/verbs.cpp:2366 msgid "Put text on path" msgstr "Tekst op een pad plaatsen" -#: ../src/text-chemistry.cpp:206 +#: ../src/text-chemistry.cpp:205 msgid "Select a text on path to remove it from path." msgstr "Selecteer een tekst op een pad om het van het pad af te halen." -#: ../src/text-chemistry.cpp:227 +#: ../src/text-chemistry.cpp:226 msgid "No texts-on-paths in the selection." msgstr "Geen tekst op een pad geselecteerd." -#: ../src/text-chemistry.cpp:230 +#: ../src/text-chemistry.cpp:229 #: ../src/verbs.cpp:2368 msgid "Remove text from path" msgstr "Tekst van een pad verwijderen" -#: ../src/text-chemistry.cpp:270 -#: ../src/text-chemistry.cpp:291 +#: ../src/text-chemistry.cpp:269 +#: ../src/text-chemistry.cpp:290 msgid "Select text(s) to remove kerns from." msgstr "Selecteer één of meer teksten om de tekenspatiëring van te verwijderen." -#: ../src/text-chemistry.cpp:294 +#: ../src/text-chemistry.cpp:293 msgid "Remove manual kerns" msgstr "Handgemaakte tekenspatiëring verwijderen" -#: ../src/text-chemistry.cpp:314 +#: ../src/text-chemistry.cpp:313 msgid "Select a text and one or more paths or shapes to flow text into frame." msgstr "Selecteer een tekst en één of meer paden of vormen om de tekst in een vorm te zetten." -#: ../src/text-chemistry.cpp:382 +#: ../src/text-chemistry.cpp:381 msgid "Flow text into shape" msgstr "Tekst in een vorm plaatsen" -#: ../src/text-chemistry.cpp:404 +#: ../src/text-chemistry.cpp:403 msgid "Select a flowed text to unflow it." msgstr "Selecteer ingekaderde tekst om het uit de vorm te halen." -#: ../src/text-chemistry.cpp:478 +#: ../src/text-chemistry.cpp:477 msgid "Unflow flowed text" msgstr "Ingekaderde tekst uit vorm halen" -#: ../src/text-chemistry.cpp:490 +#: ../src/text-chemistry.cpp:489 msgid "Select flowed text(s) to convert." msgstr "Selecteer ingekaderde tekst(en) om om te zetten." -#: ../src/text-chemistry.cpp:508 +#: ../src/text-chemistry.cpp:507 msgid "The flowed text(s) must be visible in order to be converted." msgstr "Ingekaderde tekst moet zichtbaar om het om te kunnen zetten." -#: ../src/text-chemistry.cpp:536 +#: ../src/text-chemistry.cpp:535 msgid "Convert flowed text to text" msgstr "Ingekaderde tekst omzetten naar tekst" -#: ../src/text-chemistry.cpp:541 +#: ../src/text-chemistry.cpp:540 msgid "No flowed text(s) to convert in the selection." msgstr "Er zijn geen ingekaderde tekst(en) geselecteerd om om te zetten." @@ -12335,7 +12500,7 @@ msgstr "Een pad retoucheren door te duwen: selecteer het en sleep eroverheen." #: ../src/tools-switch.cpp:145 msgid "Drag, click or scroll to spray the selected objects." -msgstr "" +msgstr "Sleep, klik of scroll om de geselecteerde objecten te verstuiven." #: ../src/tools-switch.cpp:151 msgid "Drag to create a rectangle. Drag controls to round corners and resize. Click to select." @@ -12379,7 +12544,7 @@ msgstr "Klik of selecteer een gebied om in te zoomen, Shift+kli #: ../src/tools-switch.cpp:217 msgid "Drag to measure the dimensions of objects." -msgstr "" +msgstr "Sleep om de objectdimensies te bepalen." #: ../src/tools-switch.cpp:229 msgid "Click and drag between shapes to create a connector." @@ -12403,171 +12568,171 @@ msgstr "Een secundair gereedschap uit de gereedschappenbalk selecteren" msgid "Trace: %d. %ld nodes" msgstr "Overtrekken: %d. %ld knooppunten" -#: ../src/trace/trace.cpp:73 -#: ../src/trace/trace.cpp:138 -#: ../src/trace/trace.cpp:146 -#: ../src/trace/trace.cpp:245 +#: ../src/trace/trace.cpp:72 +#: ../src/trace/trace.cpp:137 +#: ../src/trace/trace.cpp:145 +#: ../src/trace/trace.cpp:244 msgid "Select an image to trace" msgstr "Selecteer een afbeelding om over te trekken" -#: ../src/trace/trace.cpp:108 +#: ../src/trace/trace.cpp:107 msgid "Select only one image to trace" msgstr "Selecteer slechts één afbeelding om over te trekken" -#: ../src/trace/trace.cpp:126 +#: ../src/trace/trace.cpp:125 msgid "Select one image and one or more shapes above it" msgstr "Selecteer een plaatje en één of meer vormen erboven" -#: ../src/trace/trace.cpp:236 +#: ../src/trace/trace.cpp:235 msgid "Trace: No active desktop" msgstr "Overtrekken: Geen actieve desktop" -#: ../src/trace/trace.cpp:336 +#: ../src/trace/trace.cpp:335 msgid "Invalid SIOX result" msgstr "Ongeldig SIOX resultaat" -#: ../src/trace/trace.cpp:441 +#: ../src/trace/trace.cpp:440 msgid "Trace: No active document" msgstr "Overtrekken: geen actief document" -#: ../src/trace/trace.cpp:464 +#: ../src/trace/trace.cpp:463 msgid "Trace: Image has no bitmap data" msgstr "Overtrekken: afbeelding heeft geen bitmap-gegevens" -#: ../src/trace/trace.cpp:471 +#: ../src/trace/trace.cpp:470 msgid "Trace: Starting trace..." msgstr "Overtrekken: beginnen met overtrekken..." #. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:574 +#: ../src/trace/trace.cpp:573 msgid "Trace bitmap" msgstr "Bitmap overtrekken" -#: ../src/trace/trace.cpp:578 +#: ../src/trace/trace.cpp:577 #, c-format msgid "Trace: Done. %ld nodes created" msgstr "Overtrekken: klaar. %ld knooppunten gemaakt" -#: ../src/tweak-context.cpp:213 +#: ../src/tweak-context.cpp:210 #, c-format msgid "%s. Drag to move." msgstr "%s. Sleep om te verplaatsen." -#: ../src/tweak-context.cpp:217 +#: ../src/tweak-context.cpp:214 #, c-format msgid "%s. Drag or click to move in; with Shift to move out." msgstr "%s. Sleep of klik om te verplaatsen naar de cursor toe; met Shift om te verplaatsen van de cursor weg." -#: ../src/tweak-context.cpp:221 +#: ../src/tweak-context.cpp:218 #, c-format msgid "%s. Drag or click to move randomly." msgstr "%s. Sleep of klik om ad random te verplaatsen." -#: ../src/tweak-context.cpp:225 +#: ../src/tweak-context.cpp:222 #, c-format msgid "%s. Drag or click to scale down; with Shift to scale up." msgstr "%s. Sleep of klik om te verkleinen; met Shift om te vergroten." -#: ../src/tweak-context.cpp:229 +#: ../src/tweak-context.cpp:226 #, c-format msgid "%s. Drag or click to rotate clockwise; with Shift, counterclockwise." msgstr "%s. Sleep of klik om in te draaien met de klok mee; met Shift om te draaien tegen de richting van de klok in." -#: ../src/tweak-context.cpp:233 +#: ../src/tweak-context.cpp:230 #, c-format msgid "%s. Drag or click to duplicate; with Shift, delete." msgstr "%s. Sleep of klik om te dupliceren; met Shift, verwijderen." -#: ../src/tweak-context.cpp:237 +#: ../src/tweak-context.cpp:234 #, c-format msgid "%s. Drag to push paths." msgstr "%s. Sleep om paden te duwen." -#: ../src/tweak-context.cpp:241 +#: ../src/tweak-context.cpp:238 #, c-format msgid "%s. Drag or click to inset paths; with Shift to outset." msgstr "%s. Sleep of klik om paden te versmallen; met Shift om te verbreden." -#: ../src/tweak-context.cpp:249 +#: ../src/tweak-context.cpp:246 #, c-format msgid "%s. Drag or click to attract paths; with Shift to repel." msgstr "%s. Sleep of klik om paden aan te trekken; met Shift om af te stoten." -#: ../src/tweak-context.cpp:257 +#: ../src/tweak-context.cpp:254 #, c-format msgid "%s. Drag or click to roughen paths." msgstr "%s. Sleep of klik om paden ruwer te maken." -#: ../src/tweak-context.cpp:261 +#: ../src/tweak-context.cpp:258 #, c-format msgid "%s. Drag or click to paint objects with color." msgstr "%s. Sleep of klik om objecten te verven in kleur." -#: ../src/tweak-context.cpp:265 +#: ../src/tweak-context.cpp:262 #, c-format msgid "%s. Drag or click to randomize colors." msgstr "%s. Sleep of klik om kleuren te randomiseren." -#: ../src/tweak-context.cpp:269 +#: ../src/tweak-context.cpp:266 #, c-format msgid "%s. Drag or click to increase blur; with Shift to decrease." msgstr "%s. Sleep of klik om vervaging te verhogen; met Shift om te verlagen." -#: ../src/tweak-context.cpp:1238 +#: ../src/tweak-context.cpp:1235 msgid "Nothing selected! Select objects to tweak." msgstr "Niets geselecteerd! Selecteer objecten om te retoucheren." # deze en onderstaande boodschappen staan in de bewerkingsgeschiedenis (menu "bewerken" > "Geschiedenis") # tweak wordt retoucheren genoemd -#: ../src/tweak-context.cpp:1272 +#: ../src/tweak-context.cpp:1269 msgid "Move tweak" msgstr "Verplaatsing" -#: ../src/tweak-context.cpp:1276 +#: ../src/tweak-context.cpp:1273 msgid "Move in/out tweak" msgstr "Verplaatsing (naar/van cursor)" -#: ../src/tweak-context.cpp:1280 +#: ../src/tweak-context.cpp:1277 msgid "Move jitter tweak" msgstr "Verplaatsing (random)" -#: ../src/tweak-context.cpp:1284 +#: ../src/tweak-context.cpp:1281 msgid "Scale tweak" msgstr "Vergroten/verkleinen" -#: ../src/tweak-context.cpp:1288 +#: ../src/tweak-context.cpp:1285 msgid "Rotate tweak" msgstr "Roteren" -#: ../src/tweak-context.cpp:1292 +#: ../src/tweak-context.cpp:1289 msgid "Duplicate/delete tweak" msgstr "Dupliceren/verwijderen" -#: ../src/tweak-context.cpp:1296 +#: ../src/tweak-context.cpp:1293 msgid "Push path tweak" msgstr "Pad duwen" -#: ../src/tweak-context.cpp:1300 +#: ../src/tweak-context.cpp:1297 msgid "Shrink/grow path tweak" msgstr "Pad verdunnen/verdikken" -#: ../src/tweak-context.cpp:1304 +#: ../src/tweak-context.cpp:1301 msgid "Attract/repel path tweak" msgstr "Pad aantrekken/afstoten" -#: ../src/tweak-context.cpp:1308 +#: ../src/tweak-context.cpp:1305 msgid "Roughen path tweak" msgstr "Pad verruwen" -#: ../src/tweak-context.cpp:1312 +#: ../src/tweak-context.cpp:1309 msgid "Color paint tweak" msgstr "Verver" -#: ../src/tweak-context.cpp:1316 +#: ../src/tweak-context.cpp:1313 msgid "Color jitter tweak" msgstr "Verkleuren" -#: ../src/tweak-context.cpp:1320 +#: ../src/tweak-context.cpp:1317 msgid "Blur tweak" msgstr "Vervagen" @@ -12789,12 +12954,12 @@ msgstr "V:" #: ../src/ui/dialog/align-and-distribute.cpp:512 #: ../src/ui/dialog/align-and-distribute.cpp:894 -#: ../src/widgets/toolbox.cpp:8353 +#: ../src/widgets/toolbox.cpp:8395 msgid "Remove overlaps" msgstr "Overlappingen verwijderen" #: ../src/ui/dialog/align-and-distribute.cpp:543 -#: ../src/widgets/toolbox.cpp:8146 +#: ../src/widgets/toolbox.cpp:8188 msgid "Arrange connector network" msgstr "Het verbindingennetwerk herschikken" @@ -12823,7 +12988,7 @@ msgid "Rearrange" msgstr "Ordenen" #: ../src/ui/dialog/align-and-distribute.cpp:895 -#: ../src/widgets/toolbox.cpp:2310 +#: ../src/widgets/toolbox.cpp:2332 msgid "Nodes" msgstr "Knooppunten" @@ -12924,7 +13089,7 @@ msgid "Distribute baselines of texts vertically" msgstr "Grondlijnen van geselecteerde teksten verticaal verdelen" #: ../src/ui/dialog/align-and-distribute.cpp:986 -#: ../src/widgets/toolbox.cpp:8315 +#: ../src/widgets/toolbox.cpp:8357 msgid "Nicely arrange selected connector network" msgstr "Het geselecteerde verbindingennetwerk netjes schikken" @@ -13009,40 +13174,40 @@ msgstr "Profielnaam:" #. #. ----------- #: ../src/ui/dialog/calligraphic-profile-rename.cpp:52 -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +#: ../src/ui/dialog/inkscape-preferences.cpp:1243 msgid "Save" msgstr "Opslaan" -#: ../src/ui/dialog/color-item.cpp:117 +#: ../src/ui/dialog/color-item.cpp:118 #, c-format msgid "Color: %s; Click to set fill, Shift+click to set stroke" msgstr "Kleur: %s; Klik om vulling in te stellen, Shift+klik om lijnkleur in te stellen" -#: ../src/ui/dialog/color-item.cpp:491 +#: ../src/ui/dialog/color-item.cpp:482 msgid "Change color definition" msgstr "Kleurdefinitie veranderen" -#: ../src/ui/dialog/color-item.cpp:696 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove stroke color" msgstr "Lijnkleur verwijderen" -#: ../src/ui/dialog/color-item.cpp:696 +#: ../src/ui/dialog/color-item.cpp:701 msgid "Remove fill color" msgstr "Vulling verwijderen" -#: ../src/ui/dialog/color-item.cpp:701 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set stroke color to none" msgstr "Lijnkleur op geen instellen" -#: ../src/ui/dialog/color-item.cpp:701 +#: ../src/ui/dialog/color-item.cpp:706 msgid "Set fill color to none" msgstr "Vulling op geen instellen" -#: ../src/ui/dialog/color-item.cpp:717 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set stroke color from swatch" msgstr "Lijnkleur instellen uit palet" -#: ../src/ui/dialog/color-item.cpp:717 +#: ../src/ui/dialog/color-item.cpp:722 msgid "Set fill color from swatch" msgstr "Vulling instellen uit palet" @@ -13077,265 +13242,269 @@ msgid "License" msgstr "Licentie" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:92 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "Show page _border" msgstr "Pagina_rand weergeven" -#: ../src/ui/dialog/document-properties.cpp:92 +#: ../src/ui/dialog/document-properties.cpp:91 msgid "If set, rectangular page border is shown" msgstr "Indien aangevinkt, wordt de rechthoekige paginarand getoond" -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "Border on _top of drawing" msgstr "Rand altijd boven de _tekening" -#: ../src/ui/dialog/document-properties.cpp:93 +#: ../src/ui/dialog/document-properties.cpp:92 msgid "If set, border is always on top of the drawing" msgstr "Indien aangevinkt, wordt de rand altijd boven de tekening getoond" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "_Show border shadow" msgstr "Paginascha_duw weergeven" -#: ../src/ui/dialog/document-properties.cpp:94 +#: ../src/ui/dialog/document-properties.cpp:93 msgid "If set, page border shows a shadow on its right and lower side" msgstr "Indien aangevinkt, heeft de paginarand onder en rechts een schaduw" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Back_ground:" msgstr "Pagina-achtergrond:" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Background color" msgstr "Achtergrondkleur" -#: ../src/ui/dialog/document-properties.cpp:95 +#: ../src/ui/dialog/document-properties.cpp:94 msgid "Color and transparency of the page background (also used for bitmap export)" msgstr "De kleur en doorzichtigheid van de pagina-achtergrond (ook gebruikt voor het exporteren naar een bitmap)." -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Border _color:" msgstr "_Kleur paginarand:" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Page border color" msgstr "Kleur paginarand" -#: ../src/ui/dialog/document-properties.cpp:96 +#: ../src/ui/dialog/document-properties.cpp:95 msgid "Color of the page border" msgstr "Kleur van de paginarand" -#: ../src/ui/dialog/document-properties.cpp:97 +#: ../src/ui/dialog/document-properties.cpp:96 msgid "Default _units:" msgstr "Standaardeen_heid:" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:101 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show _guides" msgstr "_Hulplijnen weergeven" -#: ../src/ui/dialog/document-properties.cpp:101 +#: ../src/ui/dialog/document-properties.cpp:100 msgid "Show or hide guides" msgstr "Hulplijnen weergeven of verbergen" -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "_Snap guides while dragging" msgstr "Hulplijnen kleven tijdens _slepen" -#: ../src/ui/dialog/document-properties.cpp:102 +#: ../src/ui/dialog/document-properties.cpp:101 msgid "While dragging a guide, snap to object nodes or bounding box corners ('Snap to nodes' or 'snap to bounding box corners' must be enabled; only a small part of the guide near the cursor will snap)" msgstr "Aan knooppunten of hoekpunten van omvattende vakken kleven tijdens het verslepen van een hulplijn ('Aan knooppunten kleven' of 'Aan hoeken van omvattend vak kleven' moet actief zijn; enkel een klein deel van de hulplijn rond de cursor zal kleven)" -#: ../src/ui/dialog/document-properties.cpp:104 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guide co_lor:" msgstr "K_leur hulplijnen:" -#: ../src/ui/dialog/document-properties.cpp:104 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Guideline color" msgstr "Kleur hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:104 +#: ../src/ui/dialog/document-properties.cpp:103 msgid "Color of guidelines" msgstr "Kleur van de hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "_Highlight color:" msgstr "_Oplichtende kleur:" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Highlighted guideline color" msgstr "Kleur van oplichtende hulplijn" -#: ../src/ui/dialog/document-properties.cpp:105 +#: ../src/ui/dialog/document-properties.cpp:104 msgid "Color of a guideline when it is under mouse" msgstr "Kleur van een hulplijn als de muis ernaar wijst" -#: ../src/ui/dialog/document-properties.cpp:108 +#: ../src/ui/dialog/document-properties.cpp:107 msgctxt "Grid" msgid "_New" msgstr "_Nieuw" -#: ../src/ui/dialog/document-properties.cpp:108 +#: ../src/ui/dialog/document-properties.cpp:107 msgid "Create new grid." msgstr "Nieuw raster maken." -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:108 msgctxt "Grid" msgid "_Remove" msgstr "Ve_rwijderen" -#: ../src/ui/dialog/document-properties.cpp:109 +#: ../src/ui/dialog/document-properties.cpp:108 msgid "Remove selected grid." msgstr "Geselecteerd raster verwijderen." -#: ../src/ui/dialog/document-properties.cpp:118 -#: ../src/widgets/toolbox.cpp:2399 +#: ../src/ui/dialog/document-properties.cpp:117 +#: ../src/widgets/toolbox.cpp:2439 msgid "Guides" msgstr "Hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:120 +#: ../src/ui/dialog/document-properties.cpp:119 #: ../src/verbs.cpp:2597 msgid "Snap" msgstr "Kleven" -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Color Management" msgstr "Kleurbeheer" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "Scripting" msgstr "Scripting" -#: ../src/ui/dialog/document-properties.cpp:220 +#: ../src/ui/dialog/document-properties.cpp:219 msgid "General" msgstr "Algemeen" -#: ../src/ui/dialog/document-properties.cpp:222 +#: ../src/ui/dialog/document-properties.cpp:221 msgid "Border" msgstr "Omranding" -#: ../src/ui/dialog/document-properties.cpp:224 +#: ../src/ui/dialog/document-properties.cpp:223 msgid "Page Size" msgstr "Paginagrootte" -#: ../src/ui/dialog/document-properties.cpp:252 +#: ../src/ui/dialog/document-properties.cpp:251 msgid "Guides" msgstr "Hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:271 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap _distance" msgstr "Kleefafstan_d" -#: ../src/ui/dialog/document-properties.cpp:271 +#: ../src/ui/dialog/document-properties.cpp:270 msgid "Snap only when _closer than:" msgstr "Alleen kleven indien _dichter dan:" -#: ../src/ui/dialog/document-properties.cpp:271 -#: ../src/ui/dialog/document-properties.cpp:277 -#: ../src/ui/dialog/document-properties.cpp:283 +#: ../src/ui/dialog/document-properties.cpp:270 +#: ../src/ui/dialog/document-properties.cpp:276 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Always snap" msgstr "Altijd kleven" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Snapping distance, in screen pixels, for snapping to objects" msgstr "Kleefafstand, in schermpixels, voor kleven aan objecten" -#: ../src/ui/dialog/document-properties.cpp:272 +#: ../src/ui/dialog/document-properties.cpp:271 msgid "Always snap to objects, regardless of their distance" msgstr "Altijd aan objecten kleven, ongeacht hun afstand" -#: ../src/ui/dialog/document-properties.cpp:273 +#: ../src/ui/dialog/document-properties.cpp:272 msgid "If set, objects only snap to another object when it's within the range specified below" msgstr "Indien aangevinkt, kleven objecten alleen aan andere objecten als deze zich binnen de hier aangegeven afstand bevindt" #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:277 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap d_istance" msgstr "Klee_fafstand" -#: ../src/ui/dialog/document-properties.cpp:277 +#: ../src/ui/dialog/document-properties.cpp:276 msgid "Snap only when c_loser than:" msgstr "Alleen kleven indien d_ichter dan:" -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Snapping distance, in screen pixels, for snapping to grid" msgstr "Kleefafstand, in schermpixels, voor kleven aan raster" -#: ../src/ui/dialog/document-properties.cpp:278 +#: ../src/ui/dialog/document-properties.cpp:277 msgid "Always snap to grids, regardless of the distance" msgstr "Altijd aan raster kleven, ongeacht de afstand" -#: ../src/ui/dialog/document-properties.cpp:279 +#: ../src/ui/dialog/document-properties.cpp:278 msgid "If set, objects only snap to a grid line when it's within the range specified below" msgstr "Indien aangevinkt, kleven objecten alleen aan een rasterlijn als deze zich binnen de hier aangegeven afstand bevindt" #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:283 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap dist_ance" msgstr "Kleef_afstand" -#: ../src/ui/dialog/document-properties.cpp:283 +#: ../src/ui/dialog/document-properties.cpp:282 msgid "Snap only when close_r than:" msgstr "Alleen kleven indien di_chter dan:" -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Snapping distance, in screen pixels, for snapping to guides" msgstr "Kleefafstand, in schermpixels, voor kleven aan hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:284 +#: ../src/ui/dialog/document-properties.cpp:283 msgid "Always snap to guides, regardless of the distance" msgstr "Altijd aan hulplijnen kleven, ongeacht de afstand" -#: ../src/ui/dialog/document-properties.cpp:285 +#: ../src/ui/dialog/document-properties.cpp:284 msgid "If set, objects only snap to a guide when it's within the range specified below" msgstr "Indien aangevinkt, kleven objecten alleen aan een hulplijn als deze zich binnen de hier aangegeven afstand bevindt" -#: ../src/ui/dialog/document-properties.cpp:289 +#: ../src/ui/dialog/document-properties.cpp:288 msgid "Snap to objects" msgstr "Kleven aan objecten" -#: ../src/ui/dialog/document-properties.cpp:291 +#: ../src/ui/dialog/document-properties.cpp:290 msgid "Snap to grids" msgstr "Kleven aan rasters" -#: ../src/ui/dialog/document-properties.cpp:293 +#: ../src/ui/dialog/document-properties.cpp:292 msgid "Snap to guides" msgstr "Kleven aan hulplijnen" -#: ../src/ui/dialog/document-properties.cpp:322 -msgid "(invalid UTF-8 string)" -msgstr "(ongeldige UTF-8 string)" - #. TODO check if this next line was sometimes needed. It being there caused an assertion. #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:431 +#: ../src/ui/dialog/document-properties.cpp:406 #: ../src/verbs.cpp:2763 msgid "Link Color Profile" msgstr "Kleurprofiel linken" -#: ../src/ui/dialog/document-properties.cpp:508 +#: ../src/ui/dialog/document-properties.cpp:499 msgid "Remove linked color profile" msgstr "Gelinkt kleurprofiel verwijderen" -#: ../src/ui/dialog/document-properties.cpp:522 +#: ../src/ui/dialog/document-properties.cpp:513 msgid "Linked Color Profiles:" msgstr "Gelinkte kleurprofielen:" -#: ../src/ui/dialog/document-properties.cpp:524 +#: ../src/ui/dialog/document-properties.cpp:515 msgid "Available Color Profiles:" msgstr "Beschikbare kleurprofielen:" -#: ../src/ui/dialog/document-properties.cpp:526 +#: ../src/ui/dialog/document-properties.cpp:517 msgid "Link Profile" msgstr "Kleurprofiel linken" -#: ../src/ui/dialog/document-properties.cpp:557 +#: ../src/ui/dialog/document-properties.cpp:548 msgid "Profile Name" msgstr "Naam profiel" +#: ../src/ui/dialog/document-properties.cpp:581 +msgid "External scripts" +msgstr "Externe scripts" + +#: ../src/ui/dialog/document-properties.cpp:582 +msgid "Embedded scripts" +msgstr "Ingevoegde scripts" + # zijn dit de uitbreidingen (Engels: external modules)? #: ../src/ui/dialog/document-properties.cpp:588 msgid "External script files:" @@ -13349,24 +13518,58 @@ msgstr "Toevoegen" msgid "Filename" msgstr "Bestandsnaam" +# zijn dit de uitbreidingen (Engels: external modules)? +#: ../src/ui/dialog/document-properties.cpp:622 +msgid "Embedded script files:" +msgstr "Ingevoegde scriptbestanden:" + +#: ../src/ui/dialog/document-properties.cpp:624 +msgid "New" +msgstr "Nieuw" + +#: ../src/ui/dialog/document-properties.cpp:646 +msgid "Script id" +msgstr "Script id" + +#: ../src/ui/dialog/document-properties.cpp:652 +msgid "Content:" +msgstr "Inhoud:" + #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:653 +#: ../src/ui/dialog/document-properties.cpp:715 msgid "Add external script..." msgstr "Extern script toevoegen..." -#: ../src/ui/dialog/document-properties.cpp:679 +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:732 +msgid "Add embedded script..." +msgstr "Ingevoegd script toevoegen..." + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:762 msgid "Remove external script" msgstr "Extern script verwijderen" -#: ../src/ui/dialog/document-properties.cpp:760 +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:794 +msgid "Remove embedded script" +msgstr "Ingevoegd script verwijderen" + +#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:877 +msgid "Edit embedded script" +msgstr "Ingevoegd script bewerken" + +#: ../src/ui/dialog/document-properties.cpp:962 msgid "Creation" msgstr "Aanmaken" -#: ../src/ui/dialog/document-properties.cpp:761 +#: ../src/ui/dialog/document-properties.cpp:963 msgid "Defined grids" msgstr "Bestaande rasters" -#: ../src/ui/dialog/document-properties.cpp:972 +#: ../src/ui/dialog/document-properties.cpp:1174 msgid "Remove grid" msgstr "Raster verwijderen" @@ -13381,14 +13584,16 @@ msgstr "Informatie" #: ../share/extensions/draw_from_triangle.inx.h:20 #: ../share/extensions/dxf_input.inx.h:11 #: ../share/extensions/dxf_outlines.inx.h:8 -#: ../share/extensions/gcodetools_all_in_one.inx.h:25 -#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:28 #: ../share/extensions/gcodetools_check_for_updates.inx.h:5 -#: ../share/extensions/gcodetools_dxf_points.inx.h:13 -#: ../share/extensions/gcodetools_engraving.inx.h:11 -#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:20 #: ../share/extensions/gcodetools_orientation_points.inx.h:5 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 #: ../share/extensions/gcodetools_tools_library.inx.h:3 #: ../share/extensions/generate_voronoi.inx.h:6 #: ../share/extensions/gimp_xcf.inx.h:3 @@ -13440,32 +13645,32 @@ msgstr "Bestandsvoorbeeld tonen" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:725 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:735 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:736 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:221 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:352 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:219 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:350 msgid "All Files" msgstr "Alle bestanden" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:730 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:731 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:222 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:220 msgid "All Inkscape Files" msgstr "Alle Inkscape-bestanden" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:741 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:742 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:223 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:221 msgid "All Images" msgstr "Alle afbeeldingen" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:746 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:747 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:224 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:222 msgid "All Vectors" msgstr "Alle vectoren" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:751 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:752 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:225 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:223 msgid "All Bitmaps" msgstr "Alle bitmappen" @@ -13545,15 +13750,15 @@ msgstr "Achtergrond" msgid "Destination" msgstr "Doel" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:353 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:351 msgid "All Executable Files" msgstr "Alle uitvoerbare bestanden" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:545 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:543 msgid "Show Preview" msgstr "Voorbeeld tonen" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:683 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:681 msgid "No file selected" msgstr "Geen bestand geselecteerd" @@ -13767,10 +13972,10 @@ msgid "Height of filter effects region" msgstr "Hoogte van filtereffectgebied" #: ../src/ui/dialog/filter-effects-dialog.cpp:2190 -#: ../src/widgets/toolbox.cpp:4095 -#: ../src/widgets/toolbox.cpp:4473 -#: ../src/widgets/toolbox.cpp:4737 -#: ../src/widgets/toolbox.cpp:6202 +#: ../src/widgets/toolbox.cpp:4143 +#: ../src/widgets/toolbox.cpp:4521 +#: ../src/widgets/toolbox.cpp:4779 +#: ../src/widgets/toolbox.cpp:6244 #: ../share/extensions/extrude.inx.h:4 #: ../share/extensions/triangle.inx.h:9 msgid "Mode:" @@ -14870,35 +15075,40 @@ msgstr "Rela_tieve verplaatsing" msgid "Move and/or rotate the guide relative to current settings" msgstr "Hulplijn verplaatsen en/of verdraaiien relatief ten opzichte van de huidige instellingen" -#: ../src/ui/dialog/guides.cpp:45 -msgid "Label:" -msgstr "Label:" +#: ../src/ui/dialog/guides.cpp:43 +msgid "_X:" +msgstr "_X:" + +#: ../src/ui/dialog/guides.cpp:44 +#: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 +#: ../src/widgets/sp-color-scales.cpp:462 +msgid "_Y:" +msgstr "_Y:" #: ../src/ui/dialog/guides.cpp:45 msgid "Optionally give this guideline a name" msgstr "" #: ../src/ui/dialog/guides.cpp:46 -#: ../src/widgets/toolbox.cpp:5195 -#: ../share/extensions/motion.inx.h:1 -#: ../share/extensions/restack.inx.h:1 -msgid "Angle:" +#, fuzzy +msgid "_Angle:" msgstr "Hoek:" -#: ../src/ui/dialog/guides.cpp:112 +#: ../src/ui/dialog/guides.cpp:120 msgid "Set guide properties" msgstr "Hulplijneigenschappen instellen" -#: ../src/ui/dialog/guides.cpp:151 +#: ../src/ui/dialog/guides.cpp:159 msgid "Guideline" msgstr "Hulplijn" -#: ../src/ui/dialog/guides.cpp:243 +#: ../src/ui/dialog/guides.cpp:256 #, c-format msgid "Guideline ID: %s" msgstr "Hulplijn ID: %s" -#: ../src/ui/dialog/guides.cpp:249 +#: ../src/ui/dialog/guides.cpp:262 #, c-format msgid "Current: %s" msgstr "Huidig: %s" @@ -14912,1121 +15122,1121 @@ msgstr "%d x %d" msgid "Magnified:" msgstr "Uitvergroot:" -#: ../src/ui/dialog/icon-preview.cpp:226 +#: ../src/ui/dialog/icon-preview.cpp:227 msgid "Actual Size:" msgstr "Huidige grootte:" -#: ../src/ui/dialog/icon-preview.cpp:231 +#: ../src/ui/dialog/icon-preview.cpp:232 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "Sele_ctie" -#: ../src/ui/dialog/icon-preview.cpp:233 +#: ../src/ui/dialog/icon-preview.cpp:234 msgid "Selection only or whole document" msgstr "Alleen selectie of volledig document" -#: ../src/ui/dialog/inkscape-preferences.cpp:177 +#: ../src/ui/dialog/inkscape-preferences.cpp:178 msgid "Mouse" msgstr "Muis" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 msgid "Grab sensitivity:" msgstr "Grijpgevoeligheid:" -#: ../src/ui/dialog/inkscape-preferences.cpp:179 -#: ../src/ui/dialog/inkscape-preferences.cpp:182 -#: ../src/ui/dialog/inkscape-preferences.cpp:198 -#: ../src/ui/dialog/inkscape-preferences.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:212 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:213 msgid "pixels" msgstr "pixels" -#: ../src/ui/dialog/inkscape-preferences.cpp:180 +#: ../src/ui/dialog/inkscape-preferences.cpp:181 msgid "How close on the screen you need to be to an object to be able to grab it with mouse (in screen pixels)" msgstr "Hoe dicht u naast een object moet klikken om het te selecteren met de muis (in schermpixels)" -#: ../src/ui/dialog/inkscape-preferences.cpp:182 +#: ../src/ui/dialog/inkscape-preferences.cpp:183 msgid "Click/drag threshold:" msgstr "Grenswaarde tussen klikken/slepen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:184 msgid "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "Maximale verschuiving van de muis (in schermpixels) die nog als klikken en niet als slepen wordt geïnterpreteerd." -#: ../src/ui/dialog/inkscape-preferences.cpp:185 +#: ../src/ui/dialog/inkscape-preferences.cpp:186 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "Drukgevoelig tekentablet gebruiken (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:187 +#: ../src/ui/dialog/inkscape-preferences.cpp:188 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 mouse)" msgstr "De mogelijkheden van een tekentablet of ander drukgevoelig apparaat gebruiken. Zet deze optie uit alleen als u problemen met het tekentablet ondervindt (u kunt het nog steeds als een muis gebruiken)" -#: ../src/ui/dialog/inkscape-preferences.cpp:189 +#: ../src/ui/dialog/inkscape-preferences.cpp:190 msgid "Switch tool based on tablet device (requires restart)" msgstr "Tekentablet bepaalt het gereedschap (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:192 msgid "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "Van gereedschap veranderen wanneer op tekentablet een ander apparaat gebruikt wordt (pen, gom, muis)" -#: ../src/ui/dialog/inkscape-preferences.cpp:196 +#: ../src/ui/dialog/inkscape-preferences.cpp:197 msgid "Scrolling" msgstr "Verschuiven" -#: ../src/ui/dialog/inkscape-preferences.cpp:198 +#: ../src/ui/dialog/inkscape-preferences.cpp:199 msgid "Mouse wheel scrolls by:" msgstr "Het muiswiel verschuift met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:199 +#: ../src/ui/dialog/inkscape-preferences.cpp:200 msgid "One mouse wheel notch scrolls by this distance in screen pixels (horizontally with Shift)" msgstr "Elke muiswielstap verschuift het beeld dit aantal pixels (houd Shift ingedrukt om horizontaal te verschuiven)" -#: ../src/ui/dialog/inkscape-preferences.cpp:200 +#: ../src/ui/dialog/inkscape-preferences.cpp:201 msgid "Ctrl+arrows" msgstr "Ctrl+pijltjestoetsen" -#: ../src/ui/dialog/inkscape-preferences.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 msgid "Scroll by:" msgstr "Verschuiven met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:204 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "Ctrl en een pijltjestoets indrukken verschuift dit aantal pixels" -#: ../src/ui/dialog/inkscape-preferences.cpp:205 +#: ../src/ui/dialog/inkscape-preferences.cpp:206 msgid "Acceleration:" msgstr "Versnelling:" -#: ../src/ui/dialog/inkscape-preferences.cpp:206 +#: ../src/ui/dialog/inkscape-preferences.cpp:207 msgid "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no acceleration)" msgstr "Ctrl en een pijltjestoets ingedrukt houden zal versnellend verschuiven (0 voor geen versnelling)" -#: ../src/ui/dialog/inkscape-preferences.cpp:207 +#: ../src/ui/dialog/inkscape-preferences.cpp:208 msgid "Autoscrolling" msgstr "Automatisch verschuiven" -#: ../src/ui/dialog/inkscape-preferences.cpp:209 +#: ../src/ui/dialog/inkscape-preferences.cpp:210 msgid "Speed:" msgstr "Snelheid:" -#: ../src/ui/dialog/inkscape-preferences.cpp:210 +#: ../src/ui/dialog/inkscape-preferences.cpp:211 msgid "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn autoscroll off)" msgstr "Hoe snel het canvas automatisch verschuift wanneer u voorbij de paginarand sleept (0 om dit uit te schakelen)" -#: ../src/ui/dialog/inkscape-preferences.cpp:213 +#: ../src/ui/dialog/inkscape-preferences.cpp:214 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" msgstr "Hoe ver de cursor van de canvasrand moet zijn verwijderd om het automatisch verschuiven te activeren; positieve getallen voor buiten het canvas, negatieve voor er binnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:214 +#: ../src/ui/dialog/inkscape-preferences.cpp:215 msgid "Left mouse button pans when Space is pressed" msgstr "Linkermuisknop verschuift het canvas wanneer spatie ingedrukt is" -#: ../src/ui/dialog/inkscape-preferences.cpp:216 +#: ../src/ui/dialog/inkscape-preferences.cpp:217 msgid "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)" msgstr "Indien aangevinkt, zal het indrukken en ingedrukt houden van de spatiebalk en vervolgens slepen met de muis met ingedrukte linkermuisknop het canvas verschuiven (zoals in Adobe Illustrator). Indien uitgeschakeld, zal spatie tijdelijk het selectie-gereedschap activeren (standaard)" -#: ../src/ui/dialog/inkscape-preferences.cpp:217 +#: ../src/ui/dialog/inkscape-preferences.cpp:218 msgid "Mouse wheel zooms by default" msgstr "Muiswiel zoomt standaard" -#: ../src/ui/dialog/inkscape-preferences.cpp:219 +#: ../src/ui/dialog/inkscape-preferences.cpp:220 msgid "When on, mouse wheel zooms without Ctrl and scrolls canvas with Ctrl; when off, it zooms with Ctrl and scrolls without Ctrl" msgstr "Indien aangevinkt, zal de muis zoomen zonder Ctrl en het canvas scrollen met Ctrl; indien uitgeschakeld, zal de muis zoomen met Ctrl en scrollen zonder Ctrl" -#: ../src/ui/dialog/inkscape-preferences.cpp:225 +#: ../src/ui/dialog/inkscape-preferences.cpp:226 msgid "Enable snap indicator" msgstr "Kleefindicator activeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:227 +#: ../src/ui/dialog/inkscape-preferences.cpp:228 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "Na het kleven wordt er een symbool getekend op het punt waaraan gekleefd werd" -#: ../src/ui/dialog/inkscape-preferences.cpp:230 +#: ../src/ui/dialog/inkscape-preferences.cpp:231 msgid "Delay (in ms):" msgstr "Vertraging (ms):" -#: ../src/ui/dialog/inkscape-preferences.cpp:231 +#: ../src/ui/dialog/inkscape-preferences.cpp:232 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 "Het kleven uitstellen zolang de muis beweegt en wacht een bepaalde fractie van een seconde. Deze extra vertraging wordt hier opgegeven. Indien ingesteld op nul of een zeer klein getal, vindt het kleven onmiddellijk plaats." -#: ../src/ui/dialog/inkscape-preferences.cpp:233 +#: ../src/ui/dialog/inkscape-preferences.cpp:234 msgid "Only snap the node closest to the pointer" msgstr "Enkel het knooppunt dichtst bij de cursor kleeft" -#: ../src/ui/dialog/inkscape-preferences.cpp:235 +#: ../src/ui/dialog/inkscape-preferences.cpp:236 msgid "Only try to snap the node that is initially closest to the mouse pointer" msgstr "Enkel het knooppunt dat initieel het dichtst bij de muiscursor is, proberen kleven" -#: ../src/ui/dialog/inkscape-preferences.cpp:238 +#: ../src/ui/dialog/inkscape-preferences.cpp:239 msgid "Weight factor:" msgstr "Wegingsfactor:" -#: ../src/ui/dialog/inkscape-preferences.cpp:239 +#: ../src/ui/dialog/inkscape-preferences.cpp:240 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 initially the closest to the pointer (when set to 1)" msgstr "Wanneer er meerdere mogelijkheden voor kleven zijn, dan kan Inkscape kiezen tussen de meest nabije transformatie (indien ingesteld op 0) of het knooppunt dat initeel het dichtst bij de muiscursor was (indien ingesteld op 1)" -#: ../src/ui/dialog/inkscape-preferences.cpp:241 +#: ../src/ui/dialog/inkscape-preferences.cpp:242 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "De muis kleeft bij het slepen van een beperkt knooppunt" -#: ../src/ui/dialog/inkscape-preferences.cpp:243 +#: ../src/ui/dialog/inkscape-preferences.cpp:244 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 constraint line" msgstr "Bij het verslepen van een beperkte lijn, de positie van de muis kleven in plaats van de projectie van het knooppunt op de beperkte lijn" -#: ../src/ui/dialog/inkscape-preferences.cpp:245 +#: ../src/ui/dialog/inkscape-preferences.cpp:246 msgid "Snapping" msgstr "Kleven" -#: ../src/ui/dialog/inkscape-preferences.cpp:250 +#: ../src/ui/dialog/inkscape-preferences.cpp:251 msgid "Steps" msgstr "Stappen" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:254 +#: ../src/ui/dialog/inkscape-preferences.cpp:255 msgid "Arrow keys move by:" msgstr "Pijltjestoetsen verschuiven met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:255 +#: ../src/ui/dialog/inkscape-preferences.cpp:256 msgid "Pressing an arrow key moves selected object(s) or node(s) by this distance" msgstr "Een pijltjestoets indrukken verplaatst de geselecteerde objecten of knooppunten met deze afstand" #. defaultscale is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:258 +#: ../src/ui/dialog/inkscape-preferences.cpp:259 msgid "> and < scale by:" msgstr "> en < schalen met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:259 +#: ../src/ui/dialog/inkscape-preferences.cpp:260 msgid "Pressing > or < scales selection up or down by this increment" msgstr "Op > of < drukken vergroot of verkleint de selectie met deze waarde" -#: ../src/ui/dialog/inkscape-preferences.cpp:261 +#: ../src/ui/dialog/inkscape-preferences.cpp:262 msgid "Inset/Outset by:" msgstr "Vernauwen/verwijden met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:262 +#: ../src/ui/dialog/inkscape-preferences.cpp:263 msgid "Inset and Outset commands displace the path by this distance" msgstr "Vernauwing en verwijding verplaatsen het pad met deze afstand" -#: ../src/ui/dialog/inkscape-preferences.cpp:263 +#: ../src/ui/dialog/inkscape-preferences.cpp:264 msgid "Compass-like display of angles" msgstr "Hoeken weergeven als een kompas" -#: ../src/ui/dialog/inkscape-preferences.cpp:265 +#: ../src/ui/dialog/inkscape-preferences.cpp:266 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 counterclockwise" msgstr "Indien aangevinkt, dan wijst 0 naar het noorden, en lopen de hoeken van 0 tot 360 graden met de klok mee; indien uit, dan wijst 0 naar het oosten, en lopen de hoeken van -180 tot 180 graden, tegen de klok in" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "Rotation snaps every:" msgstr "Draaien in stappen van:" -#: ../src/ui/dialog/inkscape-preferences.cpp:271 +#: ../src/ui/dialog/inkscape-preferences.cpp:272 msgid "degrees" msgstr "graden" -#: ../src/ui/dialog/inkscape-preferences.cpp:272 +#: ../src/ui/dialog/inkscape-preferences.cpp:273 msgid "Rotating with Ctrl pressed snaps every that much degrees; also, pressing [ or ] rotates by this amount" msgstr "Het aantal graden per stap wanneer Ctrl ingedrukt wordt tijdens het draaien; de toetsen [ en ] draaien ditzelfde aantal graden" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 +#: ../src/ui/dialog/inkscape-preferences.cpp:274 msgid "Relative snapping of guideline angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:275 +#: ../src/ui/dialog/inkscape-preferences.cpp:276 msgid "When on, the snap angles when rotating a guideline will be relative to the original angle" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:278 msgid "Zoom in/out by:" msgstr "In- en uitzoomen met:" -#: ../src/ui/dialog/inkscape-preferences.cpp:278 +#: ../src/ui/dialog/inkscape-preferences.cpp:279 msgid "Zoom tool click, +/- keys, and middle click zoom in and out by this multiplier" msgstr "Deze factor wordt gebruikt bij een klik op het vergrootglas, door de +/- toetsen, en door de middelste muisknop" -#: ../src/ui/dialog/inkscape-preferences.cpp:284 +#: ../src/ui/dialog/inkscape-preferences.cpp:285 msgid "Show selection cue" msgstr "Selectie-aanduiding tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:285 +#: ../src/ui/dialog/inkscape-preferences.cpp:286 msgid "Whether selected objects display a selection cue (the same as in selector)" msgstr "Bij geselecteerde objecten wordt een selectie-aanduiding getoond (dezelfde als bij 'Selecteren')" -#: ../src/ui/dialog/inkscape-preferences.cpp:291 +#: ../src/ui/dialog/inkscape-preferences.cpp:292 msgid "Enable gradient editing" msgstr "Aanpassen van kleurverlopen toestaan" -#: ../src/ui/dialog/inkscape-preferences.cpp:292 +#: ../src/ui/dialog/inkscape-preferences.cpp:293 msgid "Whether selected objects display gradient editing controls" msgstr "Bij geselecteerde objecten worden handvatten voor het bewerken van het kleurverloop getoond" -#: ../src/ui/dialog/inkscape-preferences.cpp:297 +#: ../src/ui/dialog/inkscape-preferences.cpp:298 msgid "Conversion to guides uses edges instead of bounding box" msgstr "Omzetting naar hulplijnen gebruikt randen in plaats van omvatted vak" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 +#: ../src/ui/dialog/inkscape-preferences.cpp:299 msgid "Converting an object to guides places these along the object's true edges (imitating the object's shape), not along the bounding box" msgstr "Het omzetten van een object naar hulplijnen plaatst het langs de randen van het object (imitatie van de objectvorm), niet langs het omvattend vak" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "Ctrl+click dot size:" msgstr "Stipgrootte van Ctrl+klik:" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:306 msgid "times current stroke width" msgstr "maal huidige lijndikte" -#: ../src/ui/dialog/inkscape-preferences.cpp:306 +#: ../src/ui/dialog/inkscape-preferences.cpp:307 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "Grootte van stippen gemaakt door Ctrl+klik (ten opzichte van de huidige omlijningsdikte)" -#: ../src/ui/dialog/inkscape-preferences.cpp:321 +#: ../src/ui/dialog/inkscape-preferences.cpp:322 msgid "No objects selected to take the style from." msgstr "Er zijn geen objecten geselecteerd om de stijl van over te nemen." -#: ../src/ui/dialog/inkscape-preferences.cpp:330 +#: ../src/ui/dialog/inkscape-preferences.cpp:331 msgid "More than one object selected. Cannot take style from multiple objects." msgstr "Meer dan één object geselecteerd. De stijl kan niet van meerdere objectentegelijk worden overgenomen." -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Style of new objects" msgstr "Stijl van nieuwe objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:365 +#: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Last used style" msgstr "Laatst gebruikte stijl" -#: ../src/ui/dialog/inkscape-preferences.cpp:367 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Apply the style you last set on an object" msgstr "De laatste op een object gebruikte stijl toepassen" -#: ../src/ui/dialog/inkscape-preferences.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "This tool's own style:" msgstr "Stijl van dit gereedschap:" -#: ../src/ui/dialog/inkscape-preferences.cpp:376 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "Each tool may store its own style to apply to the newly created objects. Use the button below to set it." msgstr "Elk gereedschap kan zijn eigen stijl opslaan die gebruikt wordt voor nieuwe objecten. Gebruik de knop hieronder om de stijl in te stellen." #. style swatch -#: ../src/ui/dialog/inkscape-preferences.cpp:380 +#: ../src/ui/dialog/inkscape-preferences.cpp:381 msgid "Take from selection" msgstr "Overnemen van selectie" -#: ../src/ui/dialog/inkscape-preferences.cpp:385 +#: ../src/ui/dialog/inkscape-preferences.cpp:386 msgid "This tool's style of new objects" msgstr "Stijl van dit gereedschap voor nieuwe objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:392 +#: ../src/ui/dialog/inkscape-preferences.cpp:393 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "De stijl van het (eerst) geselecteerde object onthouden als stijl voor dit gereedschap" -#: ../src/ui/dialog/inkscape-preferences.cpp:397 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 msgid "Tools" msgstr "Gereedschappen" -#: ../src/ui/dialog/inkscape-preferences.cpp:400 +#: ../src/ui/dialog/inkscape-preferences.cpp:401 msgid "Bounding box to use" msgstr "Te gebruiken omvattend vak" -#: ../src/ui/dialog/inkscape-preferences.cpp:401 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Visual bounding box" msgstr "Visueel omvattend vak" -#: ../src/ui/dialog/inkscape-preferences.cpp:403 +#: ../src/ui/dialog/inkscape-preferences.cpp:404 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "Dit omvattend vak omvat lijndiktes, markeringen, filtermarges, enzovoort." -#: ../src/ui/dialog/inkscape-preferences.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Geometric bounding box" msgstr "Geometrisch omvattend vak" -#: ../src/ui/dialog/inkscape-preferences.cpp:406 +#: ../src/ui/dialog/inkscape-preferences.cpp:407 msgid "This bounding box includes only the bare path" msgstr "Dit omvattend vak omvat alleen het pad zelf" -#: ../src/ui/dialog/inkscape-preferences.cpp:408 +#: ../src/ui/dialog/inkscape-preferences.cpp:409 msgid "Conversion to guides" msgstr "Conversie naar hulplijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:409 +#: ../src/ui/dialog/inkscape-preferences.cpp:410 msgid "Keep objects after conversion to guides" msgstr "Objecten behouden na hun conversie naar hulplijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../src/ui/dialog/inkscape-preferences.cpp:412 msgid "When converting an object to guides, don't delete the object after the conversion" msgstr "Wanneer een object naar hulplijnen omgezet wordt, het object na omzetting niet verwijderen" -#: ../src/ui/dialog/inkscape-preferences.cpp:412 +#: ../src/ui/dialog/inkscape-preferences.cpp:413 msgid "Treat groups as a single object" msgstr "Groepen als één object behandelen" -#: ../src/ui/dialog/inkscape-preferences.cpp:414 +#: ../src/ui/dialog/inkscape-preferences.cpp:415 msgid "Treat groups as a single object during conversion to guides rather than converting each child separately" msgstr "Groepen als één object behandelen bij omzetting naar hulplijnen in plaats van elk onderdeel apart" -#: ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/ui/dialog/inkscape-preferences.cpp:417 msgid "Average all sketches" msgstr "Schetsen uitmiddelen" -#: ../src/ui/dialog/inkscape-preferences.cpp:417 +#: ../src/ui/dialog/inkscape-preferences.cpp:418 msgid "Width is in absolute units" msgstr "Breedte is in absolute eenheden" -#: ../src/ui/dialog/inkscape-preferences.cpp:418 +#: ../src/ui/dialog/inkscape-preferences.cpp:419 msgid "Select new path" msgstr "Selecteer nieuw pad" -#: ../src/ui/dialog/inkscape-preferences.cpp:419 +#: ../src/ui/dialog/inkscape-preferences.cpp:420 msgid "Don't attach connectors to text objects" msgstr "Geen verbindingen aan tekstobjecten hechten" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:422 +#: ../src/ui/dialog/inkscape-preferences.cpp:423 msgid "Selector" msgstr "Selecteren" # De dialoog is duidelijker als het werkwoord bij de keuzes staat. -#: ../src/ui/dialog/inkscape-preferences.cpp:425 +#: ../src/ui/dialog/inkscape-preferences.cpp:426 msgid "When transforming, show" msgstr "Tijdens transformeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:426 +#: ../src/ui/dialog/inkscape-preferences.cpp:427 msgid "Objects" msgstr "Objecten tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:428 +#: ../src/ui/dialog/inkscape-preferences.cpp:429 msgid "Show the actual objects when moving or transforming" msgstr "De werkelijke objecten weergeven bij verplaatsten en transformeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:429 +#: ../src/ui/dialog/inkscape-preferences.cpp:430 msgid "Box outline" msgstr "Omvattend vak tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:431 +#: ../src/ui/dialog/inkscape-preferences.cpp:432 msgid "Show only a box outline of the objects when moving or transforming" msgstr "Alleen een omvattend vak weergeven bij verplaatsen en transformeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:432 +#: ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Per-object selection cue" msgstr "Selectie-aanduiding per object" -#: ../src/ui/dialog/inkscape-preferences.cpp:435 +#: ../src/ui/dialog/inkscape-preferences.cpp:436 msgid "No per-object selection indication" msgstr "Geen aanduiding van selectie per object" -#: ../src/ui/dialog/inkscape-preferences.cpp:436 +#: ../src/ui/dialog/inkscape-preferences.cpp:437 msgid "Mark" msgstr "Markering" -#: ../src/ui/dialog/inkscape-preferences.cpp:438 +#: ../src/ui/dialog/inkscape-preferences.cpp:439 msgid "Each selected object has a diamond mark in the top left corner" msgstr "Elk geselecteerd object heeft alleen een ruitmarkering in de linkerbovenhoek" -#: ../src/ui/dialog/inkscape-preferences.cpp:439 +#: ../src/ui/dialog/inkscape-preferences.cpp:440 msgid "Box" msgstr "Omhullende" -#: ../src/ui/dialog/inkscape-preferences.cpp:441 +#: ../src/ui/dialog/inkscape-preferences.cpp:442 msgid "Each selected object displays its bounding box" msgstr "Elk geselecteerd object toont zijn omvattend vak" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:444 +#: ../src/ui/dialog/inkscape-preferences.cpp:445 msgid "Node" msgstr "Knooppunten" -#: ../src/ui/dialog/inkscape-preferences.cpp:447 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 msgid "Path outline" msgstr "Padindicator" -#: ../src/ui/dialog/inkscape-preferences.cpp:448 +#: ../src/ui/dialog/inkscape-preferences.cpp:449 msgid "Path outline color" msgstr "Kleur padindicator" -#: ../src/ui/dialog/inkscape-preferences.cpp:449 +#: ../src/ui/dialog/inkscape-preferences.cpp:450 msgid "Selects the color used for showing the path outline" msgstr "Selecteer de kleur voor het tonen van de padindicator" -#: ../src/ui/dialog/inkscape-preferences.cpp:450 +#: ../src/ui/dialog/inkscape-preferences.cpp:451 msgid "Always show outline" msgstr "Padindicator altijd tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:451 +#: ../src/ui/dialog/inkscape-preferences.cpp:452 msgid "Show outlines for all paths, not only invisible paths" msgstr "Padindicator voor alle paden tonen, niet alleen onzichtbare paden" -#: ../src/ui/dialog/inkscape-preferences.cpp:452 +#: ../src/ui/dialog/inkscape-preferences.cpp:453 msgid "Update outline when dragging nodes" msgstr "Padindicator updaten bij het slepen van knooppunten" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:454 msgid "Update the outline when dragging or transforming nodes; if this is off, the outline will only update when completing a drag" msgstr "Padindicator updaten bij het slepen of transformeren van knooppunten. Indien uitgeschakeld wordt de padindicator alleen geupdated bij het beëindigen van het slepen." -#: ../src/ui/dialog/inkscape-preferences.cpp:454 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "Update paths when dragging nodes" msgstr "Paden updaten bij het slepen van knooppunten" -#: ../src/ui/dialog/inkscape-preferences.cpp:455 +#: ../src/ui/dialog/inkscape-preferences.cpp:456 msgid "Update paths when dragging or transforming nodes; if this is off, paths will only be updated when completing a drag" msgstr "Paden updaten bij het slepen of transformeren van knooppunten. Indien uitgeschakeld worden paden alleen geupdated bij het beëindigen van het slepen." -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:457 msgid "Show path direction on outlines" msgstr "Padrichting tonen bij de indicator" -#: ../src/ui/dialog/inkscape-preferences.cpp:457 +#: ../src/ui/dialog/inkscape-preferences.cpp:458 msgid "Visualize the direction of selected paths by drawing small arrows in the middle of each outline segment" msgstr "De richting van geselecteerde paden tonen door het tekenen van kleine peilen in het midden van elk segment van de indicator" -#: ../src/ui/dialog/inkscape-preferences.cpp:458 +#: ../src/ui/dialog/inkscape-preferences.cpp:459 msgid "Show temporary path outline" msgstr "Padindicator tijdelijk tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:459 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 msgid "When hovering over a path, briefly flash its outline" msgstr "Padindicator kort tonen wanneer de muis over een pad beweegt" -#: ../src/ui/dialog/inkscape-preferences.cpp:460 +#: ../src/ui/dialog/inkscape-preferences.cpp:461 msgid "Show temporary outline for selected paths" msgstr "Padindicator voor geselecteerde paden tijdelijk tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:461 +#: ../src/ui/dialog/inkscape-preferences.cpp:462 msgid "Show temporary outline even when a path is selected for editing" msgstr "Padindicator tijdelijk tonen, zelfs wanneer een pad geselecteerd is voor bewerking" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 msgid "Flash time:" msgstr "Weergavetijd:" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:464 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 path" msgstr "Geef aan hoelang de padindicator zichtbaar zal zijn na een mouse-over (in milliseconden). Geef 0 op om de indicator weer te geven tot de muis het pad verlaat." -#: ../src/ui/dialog/inkscape-preferences.cpp:464 +#: ../src/ui/dialog/inkscape-preferences.cpp:465 msgid "Editing preferences" msgstr "Bewerkvoorkeuren" -#: ../src/ui/dialog/inkscape-preferences.cpp:465 +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Show transform handles for single nodes" msgstr "Transformatiehandvatten tonen voor afzonderlijke knooppunten" -#: ../src/ui/dialog/inkscape-preferences.cpp:466 +#: ../src/ui/dialog/inkscape-preferences.cpp:467 msgid "Show transform handles even when only a single node is selected" msgstr "Transformatiehandvatten tonen zelfs wanneer er slecht één knooppunt is geselecteerd" -#: ../src/ui/dialog/inkscape-preferences.cpp:467 +#: ../src/ui/dialog/inkscape-preferences.cpp:468 msgid "Deleting nodes preserves shape" msgstr "Knooppuntverwijdering behoudt vorm" -#: ../src/ui/dialog/inkscape-preferences.cpp:468 +#: ../src/ui/dialog/inkscape-preferences.cpp:469 msgid "Move handles next to deleted nodes to resemble original shape; hold Ctrl to get the other behavior" msgstr "Handvatten naast verwijderde knooppunten verplaatsen om de originele vorm te behouden. Druk Ctrl in om het tegenovergestelde gedrag te verkrijgen." #. Tweak -#: ../src/ui/dialog/inkscape-preferences.cpp:471 +#: ../src/ui/dialog/inkscape-preferences.cpp:472 #: ../src/verbs.cpp:2506 msgid "Tweak" msgstr "Boetseren" -#: ../src/ui/dialog/inkscape-preferences.cpp:472 +#: ../src/ui/dialog/inkscape-preferences.cpp:473 msgid "Object paint style" msgstr "Verfstijl objecten" #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:477 +#: ../src/ui/dialog/inkscape-preferences.cpp:478 #: ../src/verbs.cpp:2508 msgid "Spray" msgstr "Verstuiven" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:482 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 #: ../src/verbs.cpp:2530 #: ../src/widgets/desktop-widget.cpp:493 msgid "Zoom" msgstr "Zoomen" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:487 +#: ../src/ui/dialog/inkscape-preferences.cpp:488 #: ../src/verbs.cpp:2532 #: ../share/extensions/measure.inx.h:6 msgid "Measure" msgstr "Meetlat" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 +#: ../src/ui/dialog/inkscape-preferences.cpp:490 msgid "Ignore first and last points" msgstr "De eerste en laatste punten negeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:490 -msgid "The beggining and end of the measurement tool's control line will not be considered for calculating lengths. Only lengths between actual curve intersections will be displayed." +#: ../src/ui/dialog/inkscape-preferences.cpp:491 +msgid "The start and end of the measurement tool's control line will not be considered for calculating lengths. Only lengths between actual curve intersections will be displayed." msgstr "" #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:493 +#: ../src/ui/dialog/inkscape-preferences.cpp:494 msgid "Shapes" msgstr "Vormen" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:526 msgid "Sketch mode" msgstr "Schetsmodus" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:528 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" msgstr "Indien aangevinkt, wordt het resultaat het gemiddelde van alle gemaakte schetsen, in plaats van het het oude resultaat met de nieuwe schets uit te middelen" #. Pen -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:531 #: ../src/ui/dialog/input.cpp:1184 #: ../src/verbs.cpp:2522 msgid "Pen" msgstr "Pen" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:537 #: ../src/verbs.cpp:2524 msgid "Calligraphy" msgstr "Kalligrafie" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 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" msgstr "Wanneer aangezet is de pendikte in absolute eenheden (px) onafhankelijk van de zoom; zoniet is deze afhankelijk van de zoom zodat het er hetzelfde uitziet bij ieder zoom" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "If on, each newly created object will be selected (deselecting previous selection)" msgstr "Indien actief, zal ieder nieuw aangemaakt object selecteren (deselecteert vorige selectie)" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:545 #: ../src/verbs.cpp:2538 msgid "Paint Bucket" msgstr "Verfemmer" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:549 +#: ../src/ui/dialog/inkscape-preferences.cpp:550 #: ../src/verbs.cpp:2542 msgid "Eraser" msgstr "Gom" -#: ../src/ui/dialog/inkscape-preferences.cpp:563 +#: ../src/ui/dialog/inkscape-preferences.cpp:564 msgid "Show font samples in the drop-down list" msgstr "Lettertypevoorbeelden tonen in drop-down lijst" -#: ../src/ui/dialog/inkscape-preferences.cpp:564 +#: ../src/ui/dialog/inkscape-preferences.cpp:565 msgid "Show font samples alongside font names in the drop-down list in Text bar" msgstr "Lettertypevoorbeelden tonen naast lettertypenamen in drop-down lijst in tekstbalk" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:569 +#: ../src/ui/dialog/inkscape-preferences.cpp:570 #: ../src/verbs.cpp:2528 msgid "Gradient" msgstr "Kleurverloop" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:573 +#: ../src/ui/dialog/inkscape-preferences.cpp:574 #: ../src/verbs.cpp:2536 msgid "Connector" msgstr "Verbinding" -#: ../src/ui/dialog/inkscape-preferences.cpp:576 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "If on, connector attachment points will not be shown for text objects" msgstr "Indien aangevinkt, worden verbindingspunten aan tekstobjecten niet getoond" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:578 +#: ../src/ui/dialog/inkscape-preferences.cpp:579 #: ../src/verbs.cpp:2534 msgid "Dropper" msgstr "Pipet" -#: ../src/ui/dialog/inkscape-preferences.cpp:585 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Save and restore window geometry for each document" msgstr "Venstergeometrie voor elk document apart opslaan en herstellen" -#: ../src/ui/dialog/inkscape-preferences.cpp:586 +#: ../src/ui/dialog/inkscape-preferences.cpp:587 msgid "Remember and use last window's geometry" msgstr "Laatstgebruikte venstergeometrie opslaan en hergebruiken" -#: ../src/ui/dialog/inkscape-preferences.cpp:587 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Don't save window geometry" msgstr "Venstergeometrie niet opslaan" -#: ../src/ui/dialog/inkscape-preferences.cpp:589 -#: ../src/ui/dialog/inkscape-preferences.cpp:609 +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +#: ../src/ui/dialog/inkscape-preferences.cpp:610 msgid "Dockable" msgstr "Paneel" -#: ../src/ui/dialog/inkscape-preferences.cpp:592 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Dialogs are hidden in taskbar" msgstr "Dialogen zijn verborgen in de taakbalk" -#: ../src/ui/dialog/inkscape-preferences.cpp:593 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Zoom when window is resized" msgstr "Zoomen wanneer de venstergrootte verandert" -#: ../src/ui/dialog/inkscape-preferences.cpp:594 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Show close button on dialogs" msgstr "Sluitknop weergeven in dialogen" -#: ../src/ui/dialog/inkscape-preferences.cpp:597 +#: ../src/ui/dialog/inkscape-preferences.cpp:598 msgid "Aggressive" msgstr "Agressief" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:600 msgid "Saving window geometry (size and position)" msgstr "Opslaan van venstergeometrie (afmetingen en positie)" -#: ../src/ui/dialog/inkscape-preferences.cpp:601 +#: ../src/ui/dialog/inkscape-preferences.cpp:602 msgid "Let the window manager determine placement of all windows" msgstr "De vensterbeheerder de plaatsing van alle vensters laten bepalen" -#: ../src/ui/dialog/inkscape-preferences.cpp:603 +#: ../src/ui/dialog/inkscape-preferences.cpp:604 msgid "Remember and use the last window's geometry (saves geometry to user preferences)" msgstr "De laatstgebruikte venstergeometrie onthouden en hergebruiken (slaat geometrie in gebruikersvoorkeuren op)" -#: ../src/ui/dialog/inkscape-preferences.cpp:605 +#: ../src/ui/dialog/inkscape-preferences.cpp:606 msgid "Save and restore window geometry for each document (saves geometry in the document)" msgstr "Venstergeometrie voor elk document apart opslaan en gebruiken (slaat geometrie in het document op)" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 +#: ../src/ui/dialog/inkscape-preferences.cpp:608 msgid "Dialog behavior (requires restart)" msgstr "Dialooggedrag (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:614 +#: ../src/ui/dialog/inkscape-preferences.cpp:615 msgid "Dialogs on top:" msgstr "Plaatsing van dialogen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:617 +#: ../src/ui/dialog/inkscape-preferences.cpp:618 msgid "Dialogs are treated as regular windows" msgstr "Dialogen worden behandeld als normale vensters" -#: ../src/ui/dialog/inkscape-preferences.cpp:619 +#: ../src/ui/dialog/inkscape-preferences.cpp:620 msgid "Dialogs stay on top of document windows" msgstr "Dialogen blijven boven document vensters" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:622 msgid "Same as Normal but may work better with some window managers" msgstr "Hetzelfde als Normaal, maar kan beter werken met sommige window managers" -#: ../src/ui/dialog/inkscape-preferences.cpp:625 +#: ../src/ui/dialog/inkscape-preferences.cpp:626 msgid "Dialog Transparency" msgstr "Transparantie dialoogvenster" -#: ../src/ui/dialog/inkscape-preferences.cpp:627 +#: ../src/ui/dialog/inkscape-preferences.cpp:628 msgid "Opacity when focused:" msgstr "Ondoorzichtigheid in focus:" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:630 msgid "Opacity when unfocused:" msgstr "Ondoorzichtigheid niet in focus:" -#: ../src/ui/dialog/inkscape-preferences.cpp:631 +#: ../src/ui/dialog/inkscape-preferences.cpp:632 msgid "Time of opacity change animation:" msgstr "Animatieduur verandering ondoorzichtigheid:" -#: ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "Miscellaneous" msgstr "Diversen" -#: ../src/ui/dialog/inkscape-preferences.cpp:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:638 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "Verberg dialoogvensters in de taakbalk" -#: ../src/ui/dialog/inkscape-preferences.cpp:640 +#: ../src/ui/dialog/inkscape-preferences.cpp:641 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 above the right scrollbar)" msgstr "In- of uitzoomen wanneer het venster van grootte verandert, om het zichtbare gebied gelijk te houden (dit is de standaardinstelling; u kunt dit voor elk venster apart aanpassen met het knopje boven de rechter schuifbalk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:643 msgid "Whether dialog windows have a close button (requires restart)" msgstr "Of dialoog vensters een knop hebben om te sluiten (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:643 +#: ../src/ui/dialog/inkscape-preferences.cpp:644 msgid "Windows" msgstr "Vensters" -#: ../src/ui/dialog/inkscape-preferences.cpp:648 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 msgid "Move in parallel" msgstr "Parallel verplaatsen" -#: ../src/ui/dialog/inkscape-preferences.cpp:650 +#: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Stay unmoved" msgstr "Laten staan" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgid "Move according to transform" msgstr "Verplaatsen volgens transformatie" -#: ../src/ui/dialog/inkscape-preferences.cpp:654 +#: ../src/ui/dialog/inkscape-preferences.cpp:655 msgid "Are unlinked" msgstr "Ontkoppelen" -#: ../src/ui/dialog/inkscape-preferences.cpp:656 +#: ../src/ui/dialog/inkscape-preferences.cpp:657 msgid "Are deleted" msgstr "Verwijderen" -#: ../src/ui/dialog/inkscape-preferences.cpp:659 +#: ../src/ui/dialog/inkscape-preferences.cpp:660 msgid "Moving original: clones and linked offsets" msgstr "Verplaatsen origineel: klonen en gekoppelde offsets" -#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:662 msgid "Clones are translated by the same vector as their original" msgstr "Klonen worden op dezelfde manier verplaatst als het origineel" -#: ../src/ui/dialog/inkscape-preferences.cpp:663 +#: ../src/ui/dialog/inkscape-preferences.cpp:664 msgid "Clones preserve their positions when their original is moved" msgstr "Klonen blijven op hun plaats staan als het origineel wordt verplaatst" -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 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" msgstr "Elke kloon verplaatst volgens zijn eigen 'transform='-waarde. Een gedraaide kloon zal bijvoorbeeld in een andere richting verplaatsen dan zijn origineel." -#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "Deleting original: clones" msgstr "Verwijderen origineel: klonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:668 +#: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "Orphaned clones are converted to regular objects" msgstr "Verweesde klonen worden omgezet naar normale objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:670 +#: ../src/ui/dialog/inkscape-preferences.cpp:671 msgid "Orphaned clones are deleted along with their original" msgstr "Verweesde klonen worden verwijderd samen met hun origineel" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 +#: ../src/ui/dialog/inkscape-preferences.cpp:673 msgid "Duplicating original+clones/linked offset" msgstr "Dupliceren van origineel en klonen/gekoppelde offset" -#: ../src/ui/dialog/inkscape-preferences.cpp:674 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 msgid "Relink duplicated clones" msgstr "Gedupliceerde klonen herlinken" -#: ../src/ui/dialog/inkscape-preferences.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:677 msgid "When duplicating a selection containing both a clone and its original (possibly in groups), relink the duplicated clone to the duplicated original instead of the old original" msgstr "De gedupliceerde kloon herlinken naar het gedupliceerde origineel in plaats van het oude origineel bij het dupliceren van een selectie met zowel een kloon en zijn origineel (mogelijk voorkomend in groepen)." #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Clones" msgstr "Klonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:684 +#: ../src/ui/dialog/inkscape-preferences.cpp:685 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "Het bovenste object als afsnijpad/masker gebruiken" -#: ../src/ui/dialog/inkscape-preferences.cpp:686 +#: ../src/ui/dialog/inkscape-preferences.cpp:687 msgid "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "Vink uit om het onderste object als masker of maskerpad te gebruiken" -#: ../src/ui/dialog/inkscape-preferences.cpp:687 +#: ../src/ui/dialog/inkscape-preferences.cpp:688 msgid "Remove clippath/mask object after applying" msgstr "Het afsnijpad/masker verwijderen na gebruik" -#: ../src/ui/dialog/inkscape-preferences.cpp:689 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "After applying, remove the object used as the clipping path or mask from the drawing" msgstr "Het object dat als afsnijpad of masker gebruikt is, verwijderen na gebruik" -#: ../src/ui/dialog/inkscape-preferences.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:692 msgid "Before applying" msgstr "Voor toepassen afsnijpad/masker" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 +#: ../src/ui/dialog/inkscape-preferences.cpp:694 msgid "Do not group clipped/masked objects" msgstr "Afgesneden/gemaskerde objecten niet groeperen" -#: ../src/ui/dialog/inkscape-preferences.cpp:694 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Enclose every clipped/masked object in its own group" msgstr "Elk afgesneden/gemaskerd object in zijn eigen groep plaatsen" -#: ../src/ui/dialog/inkscape-preferences.cpp:695 +#: ../src/ui/dialog/inkscape-preferences.cpp:696 msgid "Put all clipped/masked objects into one group" msgstr "Alle afgesneden/gemaskerde objecte in één groep plaatsen" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:699 msgid "Apply clippath/mask to every object" msgstr "Afsnijding/masker op elk object toepassen" -#: ../src/ui/dialog/inkscape-preferences.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:702 msgid "Apply clippath/mask to groups containing single object" msgstr "Afsnijding/masker toepassen op één-object-groepen" -#: ../src/ui/dialog/inkscape-preferences.cpp:704 +#: ../src/ui/dialog/inkscape-preferences.cpp:705 msgid "Apply clippath/mask to group containing all objects" msgstr "Afsnijding/masker toepassen op groep met alle objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "After releasing" msgstr "Na toepassen afsnijpad/masker" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 +#: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "Ungroup automatically created groups" msgstr "Automatisch aangemaakte groepen degroeperen" -#: ../src/ui/dialog/inkscape-preferences.cpp:710 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "Ungroup groups created when setting clip/mask" msgstr "Groepen gemaakt tijdens maskeren/afsnijden, degroeperen" -#: ../src/ui/dialog/inkscape-preferences.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:713 msgid "Clippaths and masks" msgstr "Maskers en maskerpaden" -#: ../src/ui/dialog/inkscape-preferences.cpp:717 -#: ../src/widgets/select-toolbar.cpp:554 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/widgets/select-toolbar.cpp:561 msgid "Scale stroke width" msgstr "Lijndikte mee schalen" -#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/ui/dialog/inkscape-preferences.cpp:719 msgid "Scale rounded corners in rectangles" msgstr "Afronding van hoeken mee schalen" -#: ../src/ui/dialog/inkscape-preferences.cpp:719 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Transform gradients" msgstr "Kleurverlopen transformeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:720 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 msgid "Transform patterns" msgstr "Patronen transformeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "Optimized" msgstr "Optimaliseren" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/ui/dialog/inkscape-preferences.cpp:723 msgid "Preserved" msgstr "Behouden" -#: ../src/ui/dialog/inkscape-preferences.cpp:725 -#: ../src/widgets/select-toolbar.cpp:555 +#: ../src/ui/dialog/inkscape-preferences.cpp:726 +#: ../src/widgets/select-toolbar.cpp:562 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "Wanneer objecten worden vergroot of verkleind, de lijndikte evenveel mee vergroten of verkleinen" -#: ../src/ui/dialog/inkscape-preferences.cpp:727 -#: ../src/widgets/select-toolbar.cpp:566 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 +#: ../src/widgets/select-toolbar.cpp:573 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "Wanneer rechthoeken worden vergroot of verkleind, de straal van de hoek mee vergroten of verkleinen" -#: ../src/ui/dialog/inkscape-preferences.cpp:729 -#: ../src/widgets/select-toolbar.cpp:577 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/widgets/select-toolbar.cpp:584 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "Kleurverlopen (bij vulling of lijn) verplaatsen samen met de objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:731 -#: ../src/widgets/select-toolbar.cpp:588 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/widgets/select-toolbar.cpp:595 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "Patronen (bij vulling of lijn) verplaatsen samen met de objecten" -#: ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/ui/dialog/inkscape-preferences.cpp:733 msgid "Store transformation" msgstr "Opslaan van transformaties" -#: ../src/ui/dialog/inkscape-preferences.cpp:734 +#: ../src/ui/dialog/inkscape-preferences.cpp:735 msgid "If possible, apply transformation to objects without adding a transform= attribute" msgstr "Pas, indien mogelijk, transformaties op objecten toe zonder een 'transform='-waarde toe te voegen" -#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:737 msgid "Always store transformation as a transform= attribute on objects" msgstr "Transformaties altijd opslaan als een 'transform='-waarde bij objecten." -#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgid "Transforms" msgstr "Transformaties" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:744 -#: ../src/ui/dialog/inkscape-preferences.cpp:768 +#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Best quality (slowest)" msgstr "Beste kwaliteit (traagst)" -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:770 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "Better quality (slower)" msgstr "Betere kwaliteit (trager)" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 +#: ../src/ui/dialog/inkscape-preferences.cpp:749 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Average quality" msgstr "Gemiddelde kwaliteit" -#: ../src/ui/dialog/inkscape-preferences.cpp:750 -#: ../src/ui/dialog/inkscape-preferences.cpp:774 +#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Lower quality (faster)" msgstr "Lagere kwaliteit (sneller)" -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -#: ../src/ui/dialog/inkscape-preferences.cpp:776 +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Lowest quality (fastest)" msgstr "Laagste kwaliteit (snelst)" -#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 msgid "Gaussian blur quality for display" msgstr "Kwaliteit gaussiaanse vervagings voor weergave" -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:782 msgid "Best quality, but display may be very slow at high zooms (bitmap export always uses best quality)" msgstr "Beste kwaliteit, maar weergave kan heel langzaam zijn bij hoge zoom (bitmap-export gebruikt altijd beste kwaliteit)" -#: ../src/ui/dialog/inkscape-preferences.cpp:759 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +#: ../src/ui/dialog/inkscape-preferences.cpp:784 msgid "Better quality, but slower display" msgstr "Betere kwaliteit, maar langzamere weergave" -#: ../src/ui/dialog/inkscape-preferences.cpp:761 -#: ../src/ui/dialog/inkscape-preferences.cpp:785 +#: ../src/ui/dialog/inkscape-preferences.cpp:762 +#: ../src/ui/dialog/inkscape-preferences.cpp:786 msgid "Average quality, acceptable display speed" msgstr "Gemiddelde kwaliteit, acceptabele weergavesnelheid" -#: ../src/ui/dialog/inkscape-preferences.cpp:763 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 +#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:788 msgid "Lower quality (some artifacts), but display is faster" msgstr "Lage kwaliteit (enkele weergavefouten), maar weergave is sneller" -#: ../src/ui/dialog/inkscape-preferences.cpp:765 -#: ../src/ui/dialog/inkscape-preferences.cpp:789 +#: ../src/ui/dialog/inkscape-preferences.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:790 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "Laagste kwaliteit (veel weergavefouten), maar weergave is het snelst" -#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Filter effects quality for display" msgstr "Kwaliteit filtereffecten voor weergave" #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:793 msgid "Show filter primitives infobox" msgstr "Infobox met filtereffecten tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:794 +#: ../src/ui/dialog/inkscape-preferences.cpp:795 msgid "Show icons and descriptions for the filter primitives available at the filter effects dialog" msgstr "Pictogrammen en omschrijvingen van de beschikbare effecten in het filtereffectenvenster tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 msgid "Number of Threads:" msgstr "Aantal threads:" -#: ../src/ui/dialog/inkscape-preferences.cpp:798 -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "(requires restart)" msgstr "(vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:799 +#: ../src/ui/dialog/inkscape-preferences.cpp:800 msgid "Configure number of processors/threads to use with rendering of gaussian blur" msgstr "Het aantal te gebruiken processors/threads bij het renderen van gaussiaanse vervaging" # De volgende zes strings beschrijven wat enkele toetsen doen. # Een kleine letter maakt duidelijker dat ze een voortzetting zijn. -#: ../src/ui/dialog/inkscape-preferences.cpp:807 +#: ../src/ui/dialog/inkscape-preferences.cpp:808 msgid "Select in all layers" msgstr "In alle lagen selecteren" -#: ../src/ui/dialog/inkscape-preferences.cpp:808 +#: ../src/ui/dialog/inkscape-preferences.cpp:809 msgid "Select only within current layer" msgstr "Alleen binnen de huidige laag selecteren" -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:810 msgid "Select in current layer and sublayers" msgstr "In huidige laag en onderliggende lagen selecteren" -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:811 msgid "Ignore hidden objects and layers" msgstr "Verborgen objecten en lagen negeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:811 +#: ../src/ui/dialog/inkscape-preferences.cpp:812 msgid "Ignore locked objects and layers" msgstr "Vergrendelde objecten en lagen negeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:813 msgid "Deselect upon layer change" msgstr "Deselecteren bij veranderen van laag" # Dit staat voor de vorige zes strings. -#: ../src/ui/dialog/inkscape-preferences.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:815 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "Ctrl+A, Tab, Shift+Tab" -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Make keyboard selection commands work on objects in all layers" msgstr "Toetsenbordselectiecommando's werken op objecten in alle lagen" -#: ../src/ui/dialog/inkscape-preferences.cpp:818 +#: ../src/ui/dialog/inkscape-preferences.cpp:819 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "Toetsenbordselectiecommando's werken alleen op objecten in de huidige laag" -#: ../src/ui/dialog/inkscape-preferences.cpp:820 +#: ../src/ui/dialog/inkscape-preferences.cpp:821 msgid "Make keyboard selection commands work on objects in current layer and all its sublayers" msgstr "Toetsenbordselectiecommando's werken op objecten in de huidige laag en alle onderliggende lagen" -#: ../src/ui/dialog/inkscape-preferences.cpp:822 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 msgid "Uncheck this to be able to select objects that are hidden (either by themselves or by being in a hidden layer)" msgstr "Deselecteer om objecten te kunnen selecteren die verborgen zijn (zelf verborgen of doordat ze in een verborgen laag zitten)" -#: ../src/ui/dialog/inkscape-preferences.cpp:824 +#: ../src/ui/dialog/inkscape-preferences.cpp:825 msgid "Uncheck this to be able to select objects that are locked (either by themselves or by being in a locked layer)" msgstr "Deselecteer om objecten te kunnen selecteren die vergrendeld zijn (zelf vergrendeld of doordat ze in een vergrendelde laag zitten)" -#: ../src/ui/dialog/inkscape-preferences.cpp:827 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 msgid "Uncheck this to be able to keep the current objects selected when the current layer changes" msgstr "Deselecteer om geselecteerde objecten geselecteerd te houden als de huidige laag verandert" -#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:830 msgid "Selecting" msgstr "Selecteren" -#: ../src/ui/dialog/inkscape-preferences.cpp:836 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 msgid "Default export resolution:" msgstr "Standaardresolutie voor exporteren:" -#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "Standaardresolutie voor bitmaps (in punten per inch) in het 'Bitmap exporteren'-dialoogvenster" -#: ../src/ui/dialog/inkscape-preferences.cpp:839 +#: ../src/ui/dialog/inkscape-preferences.cpp:840 msgid "Open Clip Art Library Server Name:" msgstr "'Open Clip Art'-mediatheekservernaam:" -#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:841 msgid "The server name of the Open Clip Art Library webdav server; it's used by the Import and Export to OCAL function" msgstr "De servernaam van de weddav-server van de 'Open Clip Art'-mediatheek: deze wordt gebruikt bij het importeren uit en exporteren naar OCAL" -#: ../src/ui/dialog/inkscape-preferences.cpp:842 +#: ../src/ui/dialog/inkscape-preferences.cpp:843 msgid "Open Clip Art Library Username:" msgstr "'Open Clip Art'-gebruikersnaam:" -#: ../src/ui/dialog/inkscape-preferences.cpp:843 +#: ../src/ui/dialog/inkscape-preferences.cpp:844 msgid "The username used to log into Open Clip Art Library" msgstr "De gebruikersnaam om in te loggen in de 'Open Clip Art'-mediatheek" -#: ../src/ui/dialog/inkscape-preferences.cpp:845 +#: ../src/ui/dialog/inkscape-preferences.cpp:846 msgid "Open Clip Art Library Password:" msgstr "'Open Clip Art'-wachtwoord:" -#: ../src/ui/dialog/inkscape-preferences.cpp:846 +#: ../src/ui/dialog/inkscape-preferences.cpp:847 msgid "The password used to log into Open Clip Art Library" msgstr "Het wachtwoord om in te loggen in de 'Open Clip Art'-mediatheek" -#: ../src/ui/dialog/inkscape-preferences.cpp:848 +#: ../src/ui/dialog/inkscape-preferences.cpp:849 msgid "Import/Export" msgstr "Importeren/exporteren" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Perceptual" msgstr "Perceptueel" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Relative Colorimetric" msgstr "Relatief colorimetrisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:899 msgid "Absolute Colorimetric" msgstr "Absoluut colorimetrisch" -#: ../src/ui/dialog/inkscape-preferences.cpp:902 +#: ../src/ui/dialog/inkscape-preferences.cpp:903 msgid "(Note: Color management has been disabled in this build)" msgstr "(Opmerking: kleurbeheer is niet beschikbaar in deze versie.)" -#: ../src/ui/dialog/inkscape-preferences.cpp:906 +#: ../src/ui/dialog/inkscape-preferences.cpp:907 msgid "Display adjustment" msgstr "Weergavebijstelling" -#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:917 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" @@ -16035,813 +16245,813 @@ msgstr "" "Te ICC-kleurprofiel gebruiken om schermuitvoer te kalibreren.\n" "Doorzochte mappen: %s" -#: ../src/ui/dialog/inkscape-preferences.cpp:917 +#: ../src/ui/dialog/inkscape-preferences.cpp:918 msgid "Display profile:" msgstr "Weergaveprofiel:" -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 msgid "Retrieve profile from display" msgstr "Profiel uit weergaveapparaat ophalen" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:926 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "Verkrijg profielen van die verbonden aan weergaveapparaten via XICC" -#: ../src/ui/dialog/inkscape-preferences.cpp:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:928 msgid "Retrieve profiles from those attached to displays" msgstr "Verkrijg profielen van die verbonden aan weergaveapparaten" -#: ../src/ui/dialog/inkscape-preferences.cpp:932 +#: ../src/ui/dialog/inkscape-preferences.cpp:933 msgid "Display rendering intent:" msgstr "Rendermethode voor weergave:" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 msgid "The rendering intent to use to calibrate display output" msgstr "De rendermethode die gebruikt moet worden voor het kalibreren van de weergave" -#: ../src/ui/dialog/inkscape-preferences.cpp:935 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 msgid "Proofing" msgstr "Visuele controle" -#: ../src/ui/dialog/inkscape-preferences.cpp:937 +#: ../src/ui/dialog/inkscape-preferences.cpp:938 msgid "Simulate output on screen" msgstr "Uitvoer op scherm simuleren" -#: ../src/ui/dialog/inkscape-preferences.cpp:939 +#: ../src/ui/dialog/inkscape-preferences.cpp:940 msgid "Simulates output of target device" msgstr "Simuleert de uitvoer van het doelapparaat" -#: ../src/ui/dialog/inkscape-preferences.cpp:941 +#: ../src/ui/dialog/inkscape-preferences.cpp:942 msgid "Mark out of gamut colors" msgstr "Kleuren die buiten bereik vallen markeren" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:944 msgid "Highlights colors that are out of gamut for the target device" msgstr "Markeert kleuren die buiten het bereik van het doelapparaat liggen" -#: ../src/ui/dialog/inkscape-preferences.cpp:948 +#: ../src/ui/dialog/inkscape-preferences.cpp:949 msgid "Out of gamut warning color:" msgstr "Buitenbereikwaarschuwingskleur:" -#: ../src/ui/dialog/inkscape-preferences.cpp:949 +#: ../src/ui/dialog/inkscape-preferences.cpp:950 msgid "Selects the color used for out of gamut warning" msgstr "Selecteert de kleur die voor de buitenbereikwaarschuwing gebruikt wordt" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 +#: ../src/ui/dialog/inkscape-preferences.cpp:952 msgid "Device profile:" msgstr "Apparaatprofiel:" -#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/dialog/inkscape-preferences.cpp:953 msgid "The ICC profile to use to simulate device output" msgstr "ICC-profiel om apparaatuitvoer mee te simuleren" -#: ../src/ui/dialog/inkscape-preferences.cpp:955 +#: ../src/ui/dialog/inkscape-preferences.cpp:956 msgid "Device rendering intent:" msgstr "Rendermethode voor apparaat:" -#: ../src/ui/dialog/inkscape-preferences.cpp:956 +#: ../src/ui/dialog/inkscape-preferences.cpp:957 msgid "The rendering intent to use to calibrate device output" msgstr "De te gebruiken rendermethode voor het kalibreren van de apparaatuitvoer" -#: ../src/ui/dialog/inkscape-preferences.cpp:958 +#: ../src/ui/dialog/inkscape-preferences.cpp:959 msgid "Black point compensation" msgstr "Zwartpuntcompensatie" -#: ../src/ui/dialog/inkscape-preferences.cpp:960 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 msgid "Enables black point compensation" msgstr "Zwartpuntcompensatie inschakelen" -#: ../src/ui/dialog/inkscape-preferences.cpp:962 +#: ../src/ui/dialog/inkscape-preferences.cpp:963 msgid "Preserve black" msgstr "Zwart behouden" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 +#: ../src/ui/dialog/inkscape-preferences.cpp:968 msgid "(LittleCMS 1.15 or later required)" msgstr "(LittleCMS 1.15 of nieuwer is vereist)" -#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:970 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "K-kanaal behouden in CMYK->CMYK-transformaties" -#: ../src/ui/dialog/inkscape-preferences.cpp:982 -#: ../src/widgets/sp-color-icc-selector.cpp:297 -#: ../src/widgets/sp-color-icc-selector.cpp:570 +#: ../src/ui/dialog/inkscape-preferences.cpp:983 +#: ../src/widgets/sp-color-icc-selector.cpp:304 +#: ../src/widgets/sp-color-icc-selector.cpp:577 msgid "" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1027 +#: ../src/ui/dialog/inkscape-preferences.cpp:1028 msgid "Color management" msgstr "Kleurbeheer" -#: ../src/ui/dialog/inkscape-preferences.cpp:1032 +#: ../src/ui/dialog/inkscape-preferences.cpp:1033 msgid "Major grid line emphasizing" msgstr "Hoofdrasterlijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1034 +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 msgid "Don't emphasize gridlines when zoomed out" msgstr "Hoofdrasterlijnen niet benadrukken wanneer uitgezoomd" -#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/ui/dialog/inkscape-preferences.cpp:1036 msgid "If set and zoomed out, the gridlines will be shown in normal color instead of major grid line color" msgstr "Indien aangevinkt en er is uitgezoomd, dan worden rasterlijnen in de normale kleur getoond in plaats van in de hoofdrasterlijnkleur" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 +#: ../src/ui/dialog/inkscape-preferences.cpp:1038 msgid "Default grid settings" msgstr "Standaard rasterinstellingen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1043 -#: ../src/ui/dialog/inkscape-preferences.cpp:1064 +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 +#: ../src/ui/dialog/inkscape-preferences.cpp:1065 msgid "Grid units:" msgstr "Rastereenheid:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/ui/dialog/inkscape-preferences.cpp:1067 +#: ../src/ui/dialog/inkscape-preferences.cpp:1047 +#: ../src/ui/dialog/inkscape-preferences.cpp:1068 msgid "Origin X:" msgstr "X-oorsprong:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1047 -#: ../src/ui/dialog/inkscape-preferences.cpp:1068 +#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Origin Y:" msgstr "Y-oorsprong:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1051 msgid "Spacing X:" msgstr "Afstand X:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1051 -#: ../src/ui/dialog/inkscape-preferences.cpp:1070 +#: ../src/ui/dialog/inkscape-preferences.cpp:1052 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Spacing Y:" msgstr "Afstand Y:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1053 #: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1075 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Grid line color:" msgstr "Kleur van rasterlijnen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1054 -#: ../src/ui/dialog/inkscape-preferences.cpp:1076 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 +#: ../src/ui/dialog/inkscape-preferences.cpp:1077 msgid "Color used for normal grid lines" msgstr "Kleur voor normale rasterlijnen." -#: ../src/ui/dialog/inkscape-preferences.cpp:1055 #: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1077 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 #: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Major grid line color:" msgstr "Kleur van hoofdrasterlijnen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1056 -#: ../src/ui/dialog/inkscape-preferences.cpp:1078 +#: ../src/ui/dialog/inkscape-preferences.cpp:1057 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Color used for major (highlighted) grid lines" msgstr "Kleur van de (geselecteerde) hoofdrasterlijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1058 -#: ../src/ui/dialog/inkscape-preferences.cpp:1080 +#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1081 msgid "Major grid line every:" msgstr "Hoofdrasterlijn elke:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1059 +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 msgid "Show dots instead of lines" msgstr "Punten tonen in plaats van lijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1060 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "Indien aangevinkt, worden punten getoond op rasterpunten in plaats van rasterlijnen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1087 +#: ../src/ui/dialog/inkscape-preferences.cpp:1088 msgid "Use named colors" msgstr "Kleurnamen gebruiken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1088 +#: ../src/ui/dialog/inkscape-preferences.cpp:1089 msgid "If set, write the CSS name of the color when available (e.g. 'red' or 'magenta') instead of the numeric value" msgstr "Indien aangevinkt, wordt de CSS-naam van een kleur, indien beschikbaar, weggeschreven (vb. 'rood' of 'magenta') in plaats van de numerieke waarde" -#: ../src/ui/dialog/inkscape-preferences.cpp:1090 +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 msgid "XML formatting" msgstr "XML-formattering" -#: ../src/ui/dialog/inkscape-preferences.cpp:1092 +#: ../src/ui/dialog/inkscape-preferences.cpp:1093 msgid "Inline attributes" msgstr "Inline attributen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1093 +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 msgid "Put attributes on the same line as the element tag" msgstr "Attributen op dezelfde lijn als de element-tag plaatsen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "Indent, spaces:" msgstr "Inspringen, spaties:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1096 +#: ../src/ui/dialog/inkscape-preferences.cpp:1097 msgid "The number of spaces to use for indenting nested elements; set to 0 for no indentation" msgstr "Het aantal spaties dat gebruikt wordt voor het inspringen van geneste elementen; geef 0 op voor geen inspringing" -#: ../src/ui/dialog/inkscape-preferences.cpp:1098 +#: ../src/ui/dialog/inkscape-preferences.cpp:1099 msgid "Path data" msgstr "Data pad" -#: ../src/ui/dialog/inkscape-preferences.cpp:1100 +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 msgid "Allow relative coordinates" msgstr "Relatieve coördinaten toestaan" -#: ../src/ui/dialog/inkscape-preferences.cpp:1101 +#: ../src/ui/dialog/inkscape-preferences.cpp:1102 msgid "If set, relative coordinates may be used in path data" msgstr "Indien aangevinkt, kunnen relatieve coördinaten gebruikt worden in paddata" -#: ../src/ui/dialog/inkscape-preferences.cpp:1103 +#: ../src/ui/dialog/inkscape-preferences.cpp:1104 msgid "Force repeat commands" msgstr "Herhaalcommando's forceren" -#: ../src/ui/dialog/inkscape-preferences.cpp:1104 +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 msgid "Force repeating of the same path command (for example, 'L 1,2 L 3,4' instead of 'L 1,2 3,4')" msgstr "Herhaling van hetzelfde padcommando forceren (bijvoorbeeld 'L 1,2 L 3,4' in plaats van 'L 1,2 3,4')" -#: ../src/ui/dialog/inkscape-preferences.cpp:1106 +#: ../src/ui/dialog/inkscape-preferences.cpp:1107 msgid "Numbers" msgstr "Getallen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Numeric precision:" msgstr "Numerieke precisie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1110 msgid "Significant figures of the values written to the SVG file" msgstr "Significante cijfers van waarden weggeschreven in SVG-bestand" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "Minimum exponent:" msgstr "Minimum exponent:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1113 msgid "The smallest number written to SVG is 10 to the power of this exponent; anything smaller is written as zero" msgstr "Het kleinste getal dat naar SVG weggeschreven wordt is 10 tot deze macht. Alles wat kleiner is, wordt weggeschreven als nul." -#: ../src/ui/dialog/inkscape-preferences.cpp:1114 +#: ../src/ui/dialog/inkscape-preferences.cpp:1115 msgid "SVG output" msgstr "SVG-uitvoer" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "System default" msgstr "Systeemstandaard" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Albanian (sq)" msgstr "Albanees (sq)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Amharic (am)" msgstr "Amhaars (am)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Arabic (ar)" msgstr "Arabisch (ar)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Armenian (hy)" msgstr "Armeens (hy)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Azerbaijani (az)" msgstr "Azerbeidzjaans (az)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Basque (eu)" msgstr "Baskisch (eu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 msgid "Belarusian (be)" msgstr "Wit-Russisch (be)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bulgarian (bg)" msgstr "Bulgaars (bg)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Bengali (bn)" msgstr "Bengaals (bn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Breton (br)" msgstr "Bretoens (br)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Catalan (ca)" msgstr "Catalaans (ca)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Valencian Catalan (ca@valencia)" msgstr "Catalaans/Valencia (ca@valencia)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +#: ../src/ui/dialog/inkscape-preferences.cpp:1121 msgid "Chinese/China (zh_CN)" msgstr "Chinees/China (zh_CN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Chinese/Taiwan (zh_TW)" msgstr "Chinees/Taiwan (zh_TW)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Croatian (hr)" msgstr "Kroatisch (hr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1122 msgid "Czech (cs)" msgstr "Tsjechisch (cs)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Danish (da)" msgstr "Deens (da)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dutch (nl)" msgstr "Nederlands (nl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Dzongkha (dz)" msgstr "Dzongkha (dz)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "German (de)" msgstr "Duits (de)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "Greek (el)" msgstr "Grieks (el)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English (en)" msgstr "English (en)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1122 +#: ../src/ui/dialog/inkscape-preferences.cpp:1123 msgid "English/Australia (en_AU)" msgstr "Engels/Australië (en_AU)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Canada (en_CA)" msgstr "Engels/Canada (en_CA)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "English/Great Britain (en_GB)" msgstr "Engels/Groot-Brittannië (en_GB)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "Pig Latin (en_US@piglatin)" msgstr "Pig Latin (en_US@piglatin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Esperanto (eo)" msgstr "Esperanto (eo)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Estonian (et)" msgstr "Ests (et)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Farsi (fa)" msgstr "Perzisch (fa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "Finnish (fi)" msgstr "Fins (fi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "French (fr)" msgstr "Frans (fr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Irish (ga)" msgstr "Iers (ga)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Galician (gl)" msgstr "Galisisch (gl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hebrew (he)" msgstr "Hebreeuws (he)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +#: ../src/ui/dialog/inkscape-preferences.cpp:1126 msgid "Hungarian (hu)" msgstr "Hongaars (hu)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Indonesian (id)" msgstr "Indonesisch (id)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Italian (it)" msgstr "Italiaans (it)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Japanese (ja)" msgstr "Japans (ja)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Khmer (km)" msgstr "Khmer (km)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Kinyarwanda (rw)" msgstr "Rwandees (rw)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Korean (ko)" msgstr "Koreaans (ko)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Lithuanian (lt)" msgstr "Litouws (lt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1126 +#: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Macedonian (mk)" msgstr "Macedonisch (mk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Mongolian (mn)" msgstr "Mongools (mn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Nepali (ne)" msgstr "Nepalees (ne)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Bokmål (nb)" msgstr "Noors Bokmål (nb)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Norwegian Nynorsk (nn)" msgstr "Noors Nynorsk (nn)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1127 +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "Panjabi (pa)" msgstr "Punjabi (pa)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Polish (pl)" msgstr "Pools (pl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese (pt)" msgstr "Portugees (pt)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Portuguese/Brazil (pt_BR)" msgstr "Portugees/Brazillië (pt_BR)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Romanian (ro)" msgstr "Roemeens (ro)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +#: ../src/ui/dialog/inkscape-preferences.cpp:1129 msgid "Russian (ru)" msgstr "Russisch (ru)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian (sr)" msgstr "Servisch (sr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Serbian in Latin script (sr@latin)" msgstr "Servisch in Latijnse karakters (sr@latin)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovak (sk)" msgstr "Slowaaks (sk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Slovenian (sl)" msgstr "Sloveens (sl)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish (es)" msgstr "Spaans (es)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1129 +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Spanish/Mexico (es_MX)" msgstr "Spaans/Mexico (es_MX)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Swedish (sv)" msgstr "Zweeds (sv)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Telugu (te_IN)" msgstr "Telugu (te_IN)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Thai (th)" msgstr "Thai (th)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Turkish (tr)" msgstr "Turks (tr)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Ukrainian (uk)" msgstr "Oekraïens (uk)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "Vietnamese (vi)" msgstr "Vietnamees (vi)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1162 +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 msgid "Language (requires restart):" msgstr "Taal (vereist herstart):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 msgid "Set the language for menus and number formats" msgstr "De taal voor menus en nummerformaten instellen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Large" msgstr "Groot" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Small" msgstr "Klein" -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +#: ../src/ui/dialog/inkscape-preferences.cpp:1166 msgid "Smaller" msgstr "Kleiner" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "Toolbox icon size:" msgstr "Pictogramgrootte gereedschappenbalk:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +#: ../src/ui/dialog/inkscape-preferences.cpp:1171 msgid "Set the size for the tool icons (requires restart)" msgstr "De pictogramgrootte van de gereedschappenbalk instellen (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 msgid "Control bar icon size:" msgstr "Pictogramgrootte opdrachtenbalk:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1174 +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 msgid "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "De pictogramgrootte van de opdrachtenbalk instellen (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/ui/dialog/inkscape-preferences.cpp:1178 msgid "Secondary toolbar icon size:" msgstr "Pictogramgrootte secundaire gereedschappenbalk:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1178 +#: ../src/ui/dialog/inkscape-preferences.cpp:1179 msgid "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "De pictogramgrootte van de gereedschappenbalk instellen (vereist herstart)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 msgid "Work-around color sliders not drawing" msgstr "Fix voor het niet tonen van kleurschuifbalken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 msgid "When on, will attempt to work around bugs in certain GTK themes drawing color sliders" msgstr "Indien aangevinkt, zal er getracht worden om bugs bij het tonen van kleurschuifbalken in bepaalde GTK thema's te omzeilen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 msgid "Clear list" msgstr "Lijst leegmaken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 msgid "Maximum documents in Open Recent:" msgstr "Maximum aantal recente bestanden:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Set the maximum length of the Open Recent list in the File menu, or clear the list" msgstr "Het maximum aantal bestandsnamen in 'Recente bestanden' in het 'Bestand'-menu instellen of de lijst leegmaken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Zoom correction factor (in %):" msgstr "Correctiefactor zoomen (%):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1200 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 display objects in their true sizes" msgstr "Pas de schuifbalk aan tot de lengte van de meetlat op het scherm overeenkomt met de werkelijke lengte. Deze informatie wordt gebruikt bij het 1:1, 1:2, etc. zoomen om objecten op ware grootte te tonen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1203 msgid "Enable dynamic relayout for incomplete sections" msgstr "Dynamische layout voor onvolledige secties inschakelen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 msgid "When on, will allow dynamic layout of components that are not completely finished being refactored" msgstr "Indien aangevinkt, wordt dynamische layout geactiveerd van niet volledig voltooide componenten." -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +#: ../src/ui/dialog/inkscape-preferences.cpp:1208 msgid "Interface" msgstr "Interface" -#: ../src/ui/dialog/inkscape-preferences.cpp:1213 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "Use current directory for \"Save As ...\"" msgstr "Huidige directory gebruiken voor \"Opslaan als...\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 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" msgstr "Indien aangevinkt, openen \"Opslaan als\" en \"Kopie opslaan als\" altijd in de directory waar het huidig geopende document zich bevindt. Indien niet geselecteerd openen de dialoogvensters in de directory waar je laatst een bestand bewaarde met dat venster." #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Enable autosave (requires restart)" msgstr "Auto-opslaan inschakelen (vereist herstart):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 msgid "Automatically save the current document(s) at a given interval, thus minimizing loss in case of a crash" msgstr "Huidig(e) document(en) automatisch opslaan na een gegeven interval om verlies te beperken bij een crash" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes):" msgstr "Interval (in minuten):" -#: ../src/ui/dialog/inkscape-preferences.cpp:1222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Interval (in minutes) at which document will be autosaved" msgstr "Interval (in minuten) waarna het document automatisch opgeslagen wordt" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgctxt "Filesystem" msgid "Path:" msgstr "Pad:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1225 msgid "The directory where autosaves will be written" msgstr "De map waar automatisch opgeslagen documenten bewaard worden" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Maximum number of autosaves:" msgstr "Maximum aantal auto-bewaringen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +#: ../src/ui/dialog/inkscape-preferences.cpp:1227 msgid "Maximum number of autosaved files; use this to limit the storage space used" msgstr "Maximum aantal automatisch opgeslagen bestanden; gebruik deze instelling om de ingenomen opslagruimte te beperken" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "2x2" msgstr "2x2" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "4x4" msgstr "4x4" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "8x8" msgstr "8x8" -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 msgid "16x16" msgstr "16x16" -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 msgid "Oversample bitmaps:" msgstr "Bitmaps oversampelen:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1255 +#: ../src/ui/dialog/inkscape-preferences.cpp:1256 msgid "Automatically reload bitmaps" msgstr "Bitmaps automatisch herladen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 msgid "Automatically reload linked images when file is changed on disk" msgstr "Gelinkte afbeeldingen automatisch herladen wanneer het bestand op de schijf gewijzigd is" -#: ../src/ui/dialog/inkscape-preferences.cpp:1259 +#: ../src/ui/dialog/inkscape-preferences.cpp:1260 msgid "Bitmap editor:" msgstr "Bitmap editor:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1261 +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 msgid "Resolution for Create Bitmap Copy:" msgstr "Resolutie voor het maken van een bitmap-kopie:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 msgid "Resolution used by the Create Bitmap Copy command" msgstr "Resolutie gebruikt voor het commando Bitmap-kopie Aanmaken:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 msgid "Bitmaps" msgstr "Bitmappen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1317 +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 msgid "Set the main spell check language" msgstr "De hoofdtaal voor spellingscontrole instellen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Second language:" msgstr "Tweede taal:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 msgid "Set the second spell check language; checking will only stop on words unknown in ALL chosen languages" msgstr "De tweede taal voor spellingscontrole instellen; controle zal enkel stoppen bij niet-bekende woorden in ALLE gekozen talen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgid "Third language:" msgstr "Derde taal:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1325 +#: ../src/ui/dialog/inkscape-preferences.cpp:1326 msgid "Set the third spell check language; checking will only stop on words unknown in ALL chosen languages" msgstr "De derde taal voor spellingscontrole instellen; controle zal enkel stoppen bij niet-bekende woorden in ALLE gekozen talen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 msgid "Ignore words with digits" msgstr "Woorden met cijfers overslaan" -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "Woorden met cijfers overslaan, bijvoorbeeld \"R2D2\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1332 msgid "Ignore words in ALL CAPITALS" msgstr "Woorden in HOOFDLETTERS overslaan" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1334 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "Woorden in hoofdletters overslaan, bijvoorbeeld \"IUPAC\"" -#: ../src/ui/dialog/inkscape-preferences.cpp:1335 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "Spellcheck" msgstr "Spellingscontrole" -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Add label comments to printing output" msgstr "Commentaarvelden toevoegen aan printeruitvoer" -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 msgid "When on, a comment will be added to the raw print output, marking the rendered output for an object with its label" msgstr "Wanneer geselecteerd zal commentaar worden toegevoegd aan de afdruk, waar het label van een object in staat vermeld." -#: ../src/ui/dialog/inkscape-preferences.cpp:1358 +#: ../src/ui/dialog/inkscape-preferences.cpp:1359 msgid "Prevent sharing of gradient definitions" msgstr "Het delen van kleurverloopdefinities voorkomen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1360 +#: ../src/ui/dialog/inkscape-preferences.cpp:1361 msgid "When on, shared gradient definitions are automatically forked on change; uncheck to allow sharing of gradient definitions so that editing one object may affect other objects using the same gradient" msgstr "Indien aangevinkt, worden gedeelde kleurverloopdefinities bij veranderingen automatisch opgesplitst; schakel dit uit als het bewerken van een object andere objecten die dezelfde kleurverloopdefinitie gebruiken mag beïnvloeden" -#: ../src/ui/dialog/inkscape-preferences.cpp:1363 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Simplification threshold:" msgstr "Grenswaarde voor vereenvoudiging:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 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 aggressively; invoking it again after a pause restores the default threshold." msgstr "De standaardsterkte van de 'Vereenvoudigen'-opdracht. Als u deze opdracht enkele malen vlak na elkaar uitvoert, zal dat steeds meer effect hebben; uitvoeren na een korte pauze herstelt de standaard grenswaarde." -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:1368 msgid "Latency skew:" msgstr "Aanpassing vertraging:" -#: ../src/ui/dialog/inkscape-preferences.cpp:1368 +#: ../src/ui/dialog/inkscape-preferences.cpp:1369 msgid "Factor by which the event clock is skewed from the actual time (0.9766 on some systems)" msgstr "Factor waarmee de tijd van een gebeurtenis wordt aangepast ten opzichte van de actuele tijd (0,9766 op sommige systemen)" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Pre-render named icons" msgstr "Pictogram met naam pre-renderen" -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 msgid "When on, named icons will be rendered before displaying the ui. This is for working around bugs in GTK+ named icon notification" msgstr "Indien aangevinkt, worden pictogrammen met een naam gerenderd voor het tonen van de interface. Dit wordt gebruikt om bugs op te vangen bij GTK+ benoemde pictogrammeldingen" #. TRANSLATORS: following strings are paths in Inkscape preferences - Misc - System info -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1379 msgid "User config: " msgstr "Instellingen gebruiker: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1382 +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 msgid "User data: " msgstr "Data gebruiker: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1386 +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 msgid "User cache: " msgstr "Cache gebruiker: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1390 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "System config: " msgstr "Systeeminstellingen: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 msgid "System data: " msgstr "Systeemdata: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +#: ../src/ui/dialog/inkscape-preferences.cpp:1397 msgid "PIXMAP: " msgstr "PIXMAP: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +#: ../src/ui/dialog/inkscape-preferences.cpp:1401 msgid "DATA: " msgstr "DATA: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 msgid "UI: " msgstr "UI: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +#: ../src/ui/dialog/inkscape-preferences.cpp:1414 msgid "Icon theme: " msgstr "Pictogramthema: " -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "System info" msgstr "Systeeminfo" -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/inkscape-preferences.cpp:1429 msgid "General system information" msgstr "Algemene systeeminformatie" -#: ../src/ui/dialog/inkscape-preferences.cpp:1430 +#: ../src/ui/dialog/inkscape-preferences.cpp:1431 msgid "Misc" msgstr "Overig" @@ -17584,8 +17794,8 @@ msgstr "Meerdere scans: een groep van paden maken" #. # end multiple scan #. ## end mode page #: ../src/ui/dialog/tracedialog.cpp:563 -#: ../src/widgets/toolbox.cpp:4472 -#: ../src/widgets/toolbox.cpp:4736 +#: ../src/widgets/toolbox.cpp:4520 +#: ../src/widgets/toolbox.cpp:4778 msgid "Mode" msgstr "Modus" @@ -17631,37 +17841,6 @@ msgstr "Verhoog dit om het aantal knooppunten in de overtrek te verkleinen door msgid "Tolerance:" msgstr "Tolerantie:" -#. ## end option page -#: ../src/ui/dialog/tracedialog.cpp:617 -#: ../src/ui/dialog/tracedialog.cpp:623 -#: ../share/extensions/color_custom.inx.h:14 -#: ../share/extensions/color_randomize.inx.h:6 -#: ../share/extensions/dots.inx.h:5 -#: ../share/extensions/dxf_input.inx.h:15 -#: ../share/extensions/dxf_outlines.inx.h:9 -#: ../share/extensions/gcodetools_all_in_one.inx.h:33 -#: ../share/extensions/gcodetools_area.inx.h:22 -#: ../share/extensions/gcodetools_engraving.inx.h:16 -#: ../share/extensions/gcodetools_lathe.inx.h:22 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -#: ../share/extensions/generate_voronoi.inx.h:7 -#: ../share/extensions/gimp_xcf.inx.h:4 -#: ../share/extensions/interp_att_g.inx.h:15 -#: ../share/extensions/jessyInk_uninstall.inx.h:3 -#: ../share/extensions/lorem_ipsum.inx.h:4 -#: ../share/extensions/pathalongpath.inx.h:7 -#: ../share/extensions/pathscatter.inx.h:10 -#: ../share/extensions/radiusrand.inx.h:6 -#: ../share/extensions/scour.inx.h:20 -#: ../share/extensions/split.inx.h:2 -#: ../share/extensions/voronoi2svg.inx.h:6 -#: ../share/extensions/webslicer_create_group.inx.h:7 -#: ../share/extensions/webslicer_export.inx.h:6 -#: ../share/extensions/web-set-att.inx.h:6 -#: ../share/extensions/web-transmit-att.inx.h:6 -msgid "Options" -msgstr "Opties" - #. ### credits #: ../src/ui/dialog/tracedialog.cpp:627 msgid "" @@ -17712,133 +17891,133 @@ msgstr "Het overtrekken afbreken" msgid "Execute the trace" msgstr "Het overtrekken starten" -#: ../src/ui/dialog/transformation.cpp:84 -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:83 +#: ../src/ui/dialog/transformation.cpp:93 msgid "_Horizontal:" msgstr "_Horizontaal:" -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:83 msgid "Horizontal displacement (relative) or position (absolute)" msgstr "Horizontale verplaatsing (relatief) of positie (absoluut)" -#: ../src/ui/dialog/transformation.cpp:86 -#: ../src/ui/dialog/transformation.cpp:96 +#: ../src/ui/dialog/transformation.cpp:85 +#: ../src/ui/dialog/transformation.cpp:95 msgid "_Vertical:" msgstr "_Verticaal:" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:85 msgid "Vertical displacement (relative) or position (absolute)" msgstr "Verticale verplaatsing (relatief) of positie (absoluut)" -#: ../src/ui/dialog/transformation.cpp:88 +#: ../src/ui/dialog/transformation.cpp:87 msgid "Horizontal size (absolute or percentage of current)" msgstr "Horizontale grootte (absoluut of procentueel van huidige)" -#: ../src/ui/dialog/transformation.cpp:90 +#: ../src/ui/dialog/transformation.cpp:89 msgid "Vertical size (absolute or percentage of current)" msgstr "Verticale grootte (absoluut of procentueel van huidige)" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:91 msgid "A_ngle:" msgstr "Hoe_k:" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:91 msgid "Rotation angle (positive = counterclockwise)" msgstr "Rotatiehoek (positief is met de klok mee)" -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:93 msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement" msgstr "Horizontale rotatiehoek (positief is met de klok mee), absolute verplaatsing of percentage verplaatsing" -#: ../src/ui/dialog/transformation.cpp:96 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement" msgstr "Verticale rotatiehoek (positief is met de klok mee), absolute verplaatsing of percentage verplaatsing" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:98 msgid "Transformation matrix element A" msgstr "Transformatiematrix-element A" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:99 msgid "Transformation matrix element B" msgstr "Transformatiematrix-element B" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:100 msgid "Transformation matrix element C" msgstr "Transformatiematrix-element C" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:101 msgid "Transformation matrix element D" msgstr "Transformatiematrix-element D" -#: ../src/ui/dialog/transformation.cpp:103 +#: ../src/ui/dialog/transformation.cpp:102 msgid "Transformation matrix element E" msgstr "Transformatiematrix-element E" -#: ../src/ui/dialog/transformation.cpp:104 +#: ../src/ui/dialog/transformation.cpp:103 msgid "Transformation matrix element F" msgstr "Transformatiematrix-element F" -#: ../src/ui/dialog/transformation.cpp:106 +#: ../src/ui/dialog/transformation.cpp:105 msgid "Rela_tive move" msgstr "Rela_tieve verplaatsing" -#: ../src/ui/dialog/transformation.cpp:106 +#: ../src/ui/dialog/transformation.cpp:105 msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly" msgstr "Tel de opgegeven relatieve verplaatsing op bij de huidige positie; anders, bewerk de huidige absolute positie direct" -#: ../src/ui/dialog/transformation.cpp:107 +#: ../src/ui/dialog/transformation.cpp:106 msgid "_Scale proportionally" msgstr "Proportioneel s_chalen" -#: ../src/ui/dialog/transformation.cpp:107 +#: ../src/ui/dialog/transformation.cpp:106 msgid "Preserve the width/height ratio of the scaled objects" msgstr "De breedte/hoogteverhouding van de geschaalde objecten behouden" -#: ../src/ui/dialog/transformation.cpp:108 +#: ../src/ui/dialog/transformation.cpp:107 msgid "Apply to each _object separately" msgstr "_Op ieder object apart toepassen" -#: ../src/ui/dialog/transformation.cpp:108 +#: ../src/ui/dialog/transformation.cpp:107 msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole" msgstr "De acties schalen/roteren/scheeftrekken op ieder geselecteerd object onafhankelijk toepassen; anders de hele selectie als een geheel transformeren" -#: ../src/ui/dialog/transformation.cpp:109 +#: ../src/ui/dialog/transformation.cpp:108 msgid "Edit c_urrent matrix" msgstr "_Huidige matrix bewerken" -#: ../src/ui/dialog/transformation.cpp:109 +#: ../src/ui/dialog/transformation.cpp:108 msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix" msgstr "De huidige transformatiematrix bewerken; zoniet, navermenigvuldigen transformatiematrix met deze matrix" -#: ../src/ui/dialog/transformation.cpp:119 +#: ../src/ui/dialog/transformation.cpp:118 msgid "_Move" msgstr "_Verplaatsen" -#: ../src/ui/dialog/transformation.cpp:122 +#: ../src/ui/dialog/transformation.cpp:121 msgid "_Scale" msgstr "_Schalen" -#: ../src/ui/dialog/transformation.cpp:125 +#: ../src/ui/dialog/transformation.cpp:124 msgid "_Rotate" msgstr "_Roteren" -#: ../src/ui/dialog/transformation.cpp:128 +#: ../src/ui/dialog/transformation.cpp:127 msgid "Ske_w" msgstr "Scheef_trekken" -#: ../src/ui/dialog/transformation.cpp:131 +#: ../src/ui/dialog/transformation.cpp:130 msgid "Matri_x" msgstr "Matri_x" -#: ../src/ui/dialog/transformation.cpp:155 +#: ../src/ui/dialog/transformation.cpp:154 msgid "Reset the values on the current tab to defaults" msgstr "Op het huidige tabblad de standaarwaarden terugzetten" -#: ../src/ui/dialog/transformation.cpp:162 +#: ../src/ui/dialog/transformation.cpp:161 msgid "Apply transformation to selection" msgstr "Transformatie toepassen op selectie" -#: ../src/ui/dialog/transformation.cpp:857 +#: ../src/ui/dialog/transformation.cpp:856 msgid "Edit transformation matrix" msgstr "Transformatiematrix bewerken" @@ -17896,12 +18075,12 @@ msgid "Duplicate nodes" msgstr "Knooppunten dupliceren" #: ../src/ui/tool/multi-path-manipulator.cpp:402 -#: ../src/widgets/toolbox.cpp:1390 +#: ../src/widgets/toolbox.cpp:1392 msgid "Join nodes" msgstr "Knooppunten samenvoegen" #: ../src/ui/tool/multi-path-manipulator.cpp:409 -#: ../src/widgets/toolbox.cpp:1401 +#: ../src/widgets/toolbox.cpp:1403 msgid "Break nodes" msgstr "Knooppunten verbreken" @@ -18158,7 +18337,7 @@ msgstr "Roteerhandvat" #. We need to call MPM's method because it could have been our last node #: ../src/ui/tool/path-manipulator.cpp:1284 -#: ../src/widgets/toolbox.cpp:1379 +#: ../src/widgets/toolbox.cpp:1381 msgid "Delete node" msgstr "Item verwijderen" @@ -18551,13 +18730,13 @@ msgstr "Geen lijn" #: ../src/ui/widget/selected-style.cpp:167 #: ../src/ui/widget/style-swatch.cpp:277 -#: ../src/widgets/paint-selector.cpp:237 +#: ../src/widgets/paint-selector.cpp:233 msgid "Pattern" msgstr "Patroon" #: ../src/ui/widget/selected-style.cpp:170 #: ../src/ui/widget/style-swatch.cpp:279 -#: ../src/widgets/paint-selector.cpp:1025 +#: ../src/widgets/paint-selector.cpp:1021 msgid "Pattern fill" msgstr "Patroonvulling" @@ -18683,7 +18862,7 @@ msgid "White" msgstr "Wit" #: ../src/ui/widget/selected-style.cpp:237 -#: ../src/widgets/sp-color-icc-selector.cpp:231 +#: ../src/widgets/sp-color-icc-selector.cpp:232 #: ../src/widgets/sp-color-scales.cpp:466 #: ../src/widgets/sp-color-scales.cpp:467 msgid "Black" @@ -19145,330 +19324,324 @@ msgid "Remove unused definitions (such as gradients or clipping paths) from the msgstr "Ongebruikte definities (zoals kleurverlopen of hulplijnen) uit het <defs>-onderdeel van het bestand verwijderen" #: ../src/verbs.cpp:2261 -msgid "Print Previe_w" -msgstr "Afdruk_voorbeeld" - -#: ../src/verbs.cpp:2262 -msgid "Preview document printout" -msgstr "Een afdrukvoorbeeld van het document tonen" - -#: ../src/verbs.cpp:2263 msgid "_Import..." msgstr "_Importeren..." -#: ../src/verbs.cpp:2264 +#: ../src/verbs.cpp:2262 msgid "Import a bitmap or SVG image into this document" msgstr "Bitmap of SVG-bestand in het document importeren" -#: ../src/verbs.cpp:2265 +#: ../src/verbs.cpp:2263 msgid "_Export Bitmap..." msgstr "_Bitmap exporteren..." -#: ../src/verbs.cpp:2266 +#: ../src/verbs.cpp:2264 msgid "Export this document or a selection as a bitmap image" msgstr "Document of selectie als bitmap-afbeelding exporteren" -#: ../src/verbs.cpp:2267 +#: ../src/verbs.cpp:2265 msgid "Import a document from Open Clip Art Library" msgstr "Een document uit de 'Open Clip Art'-mediatheek importeren" #. 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:2269 +#: ../src/verbs.cpp:2267 msgid "N_ext Window" msgstr "V_olgende venster" -#: ../src/verbs.cpp:2270 +#: ../src/verbs.cpp:2268 msgid "Switch to the next document window" msgstr "Naar het volgende documentvenster gaan" -#: ../src/verbs.cpp:2271 +#: ../src/verbs.cpp:2269 msgid "P_revious Window" msgstr "Vor_ige venster" -#: ../src/verbs.cpp:2272 +#: ../src/verbs.cpp:2270 msgid "Switch to the previous document window" msgstr "Naar het vorige documentvenster gaan" -#: ../src/verbs.cpp:2273 +#: ../src/verbs.cpp:2271 msgid "_Close" msgstr "Sl_uiten" -#: ../src/verbs.cpp:2274 +#: ../src/verbs.cpp:2272 msgid "Close this document window" msgstr "Dit documentvenster sluiten" -#: ../src/verbs.cpp:2275 +#: ../src/verbs.cpp:2273 msgid "_Quit" msgstr "A_fsluiten" -#: ../src/verbs.cpp:2275 +#: ../src/verbs.cpp:2273 msgid "Quit Inkscape" msgstr "Inkscape afsluiten" -#: ../src/verbs.cpp:2278 +#: ../src/verbs.cpp:2276 msgid "Undo last action" msgstr "De laatste bewerking ongedaan maken" -#: ../src/verbs.cpp:2281 +#: ../src/verbs.cpp:2279 msgid "Do again the last undone action" msgstr "De laatst ongedaan gemaakte bewerking opnieuw doen" -#: ../src/verbs.cpp:2282 +#: ../src/verbs.cpp:2280 msgid "Cu_t" msgstr "K_nippen" -#: ../src/verbs.cpp:2283 +#: ../src/verbs.cpp:2281 msgid "Cut selection to clipboard" msgstr "De selectie wegknippen en op het klembord plaatsen" -#: ../src/verbs.cpp:2284 +#: ../src/verbs.cpp:2282 msgid "_Copy" msgstr "_Kopiëren" -#: ../src/verbs.cpp:2285 +#: ../src/verbs.cpp:2283 msgid "Copy selection to clipboard" msgstr "De selectie naar het klembord kopiëren" -#: ../src/verbs.cpp:2286 +#: ../src/verbs.cpp:2284 msgid "_Paste" msgstr "_Plakken" -#: ../src/verbs.cpp:2287 +#: ../src/verbs.cpp:2285 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "Objecten vanaf het klembord naar de cursor plakken, of tekst plakken" -#: ../src/verbs.cpp:2288 +#: ../src/verbs.cpp:2286 msgid "Paste _Style" msgstr "_Stijl plakken" -#: ../src/verbs.cpp:2289 +#: ../src/verbs.cpp:2287 msgid "Apply the style of the copied object to selection" msgstr "De stijl van het gekopieerde object op de huidige selectie toepassen" -#: ../src/verbs.cpp:2291 +#: ../src/verbs.cpp:2289 msgid "Scale selection to match the size of the copied object" msgstr "De huidige selectie aan de grootte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2292 +#: ../src/verbs.cpp:2290 msgid "Paste _Width" msgstr "_Breedte plakken" -#: ../src/verbs.cpp:2293 +#: ../src/verbs.cpp:2291 msgid "Scale selection horizontally to match the width of the copied object" msgstr "De huidige selectie aan de breedte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2294 +#: ../src/verbs.cpp:2292 msgid "Paste _Height" msgstr "_Hoogte plakken" -#: ../src/verbs.cpp:2295 +#: ../src/verbs.cpp:2293 msgid "Scale selection vertically to match the height of the copied object" msgstr "De huidige selectie aan de hoogte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2296 +#: ../src/verbs.cpp:2294 msgid "Paste Size Separately" msgstr "Grootte apart plakken" -#: ../src/verbs.cpp:2297 +#: ../src/verbs.cpp:2295 msgid "Scale each selected object to match the size of the copied object" msgstr "Elk geselecteerd object aan de grootte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2298 +#: ../src/verbs.cpp:2296 msgid "Paste Width Separately" msgstr "Breedte apart plakken" -#: ../src/verbs.cpp:2299 +#: ../src/verbs.cpp:2297 msgid "Scale each selected object horizontally to match the width of the copied object" msgstr "Elk geselecteerd object aan de breedte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2300 +#: ../src/verbs.cpp:2298 msgid "Paste Height Separately" msgstr "Hoogte apart plakken" -#: ../src/verbs.cpp:2301 +#: ../src/verbs.cpp:2299 msgid "Scale each selected object vertically to match the height of the copied object" msgstr "Elk geselecteerd object aan de hoogte van het gekopieerde object aanpassen" -#: ../src/verbs.cpp:2302 +#: ../src/verbs.cpp:2300 msgid "Paste _In Place" msgstr "_Op positie plakken" -#: ../src/verbs.cpp:2303 +#: ../src/verbs.cpp:2301 msgid "Paste objects from clipboard to the original location" msgstr "Objecten van het klembord naar hun originele locatie plakken" -#: ../src/verbs.cpp:2304 +#: ../src/verbs.cpp:2302 msgid "Paste Path _Effect" msgstr "Pad_effect plakken" -#: ../src/verbs.cpp:2305 +#: ../src/verbs.cpp:2303 msgid "Apply the path effect of the copied object to selection" msgstr "Het padeffect van het gekopieerde object op de huidige selectie toepassen" -#: ../src/verbs.cpp:2306 +#: ../src/verbs.cpp:2304 msgid "Remove Path _Effect" msgstr "Padeffect _verwijderen" -#: ../src/verbs.cpp:2307 +#: ../src/verbs.cpp:2305 msgid "Remove any path effects from selected objects" msgstr "Alle padeffecten van geselecteerde objecten verwijderen" -#: ../src/verbs.cpp:2308 +#: ../src/verbs.cpp:2306 msgid "_Remove Filters" msgstr "_Filters verwijderen" -#: ../src/verbs.cpp:2309 +#: ../src/verbs.cpp:2307 msgid "Remove any filters from selected objects" msgstr "Alle filters van geselecteerde objecten verwijderen" -#: ../src/verbs.cpp:2310 +#: ../src/verbs.cpp:2308 msgid "_Delete" msgstr "_Verwijderen" -#: ../src/verbs.cpp:2311 +#: ../src/verbs.cpp:2309 msgid "Delete selection" msgstr "De selectie verwijderen" -#: ../src/verbs.cpp:2312 +#: ../src/verbs.cpp:2310 msgid "Duplic_ate" msgstr "_Dupliceren" -#: ../src/verbs.cpp:2313 +#: ../src/verbs.cpp:2311 msgid "Duplicate selected objects" msgstr "Geselecteerde objecten verdubbelen" -#: ../src/verbs.cpp:2314 +#: ../src/verbs.cpp:2312 msgid "Create Clo_ne" msgstr "_Klonen" -#: ../src/verbs.cpp:2315 +#: ../src/verbs.cpp:2313 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "Een kloon (een aan het origineel gekoppelde kopie) maken van het geselecteerde object" -#: ../src/verbs.cpp:2316 +#: ../src/verbs.cpp:2314 msgid "Unlin_k Clone" msgstr "Kloon o_ntkoppelen" -#: ../src/verbs.cpp:2317 +#: ../src/verbs.cpp:2315 msgid "Cut the selected clones' links to the originals, turning them into standalone objects" msgstr "De koppeling tussen de geselecteerde klonen en de originelen verwijderen, zodat ze op zichzelf staande objecten worden" -#: ../src/verbs.cpp:2318 +#: ../src/verbs.cpp:2316 msgid "Relink to Copied" msgstr "Herlinken aan kopie" -#: ../src/verbs.cpp:2319 +#: ../src/verbs.cpp:2317 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "De geselecteerde klonen herlinken naar het object op het klembord" -#: ../src/verbs.cpp:2320 +#: ../src/verbs.cpp:2318 msgid "Select _Original" msgstr "_Origineel selecteren" -#: ../src/verbs.cpp:2321 +#: ../src/verbs.cpp:2319 msgid "Select the object to which the selected clone is linked" msgstr "Het object waaraan de kloon gekoppeld is selecteren" -#: ../src/verbs.cpp:2322 +#: ../src/verbs.cpp:2320 msgid "Objects to _Marker" msgstr "Objecten naar _markering" -#: ../src/verbs.cpp:2323 +#: ../src/verbs.cpp:2321 msgid "Convert selection to a line marker" msgstr "De selectie converteren naar een lijnmarkering" -#: ../src/verbs.cpp:2324 +#: ../src/verbs.cpp:2322 msgid "Objects to Gu_ides" msgstr "Objecten naar hulpl_ijnen" -#: ../src/verbs.cpp:2325 +#: ../src/verbs.cpp:2323 msgid "Convert selected objects to a collection of guidelines aligned with their edges" msgstr "De geselecteerde objecten converteren naar een set hulplijnen die hun randen aangeven" -#: ../src/verbs.cpp:2326 +#: ../src/verbs.cpp:2324 msgid "Objects to Patter_n" msgstr "Objecten naar patroo_n" -#: ../src/verbs.cpp:2327 +#: ../src/verbs.cpp:2325 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "De selectie converteren naar een rechthoek gevuld met een getegeld patroon" -#: ../src/verbs.cpp:2328 +#: ../src/verbs.cpp:2326 msgid "Pattern to _Objects" msgstr "Patroon naar _objecten" -#: ../src/verbs.cpp:2329 +#: ../src/verbs.cpp:2327 msgid "Extract objects from a tiled pattern fill" msgstr "Objecten uit een getegeld patroon extraheren" -#: ../src/verbs.cpp:2330 +#: ../src/verbs.cpp:2328 msgid "Clea_r All" msgstr "Alles verwijderen" -#: ../src/verbs.cpp:2331 +#: ../src/verbs.cpp:2329 msgid "Delete all objects from document" msgstr "Alle objecten uit het document verwijderen" -#: ../src/verbs.cpp:2332 +#: ../src/verbs.cpp:2330 msgid "Select Al_l" msgstr "_Alles selecteren" -#: ../src/verbs.cpp:2333 +#: ../src/verbs.cpp:2331 msgid "Select all objects or all nodes" msgstr "Alle objecten of alle knooppunten selecteren" -#: ../src/verbs.cpp:2334 +#: ../src/verbs.cpp:2332 msgid "Select All in All La_yers" msgstr "Alles selecteren in alle _lagen" -#: ../src/verbs.cpp:2335 +#: ../src/verbs.cpp:2333 msgid "Select all objects in all visible and unlocked layers" msgstr "Alle objecten in alle zichtbare en niet-vergrendelde lagen selecteren" -#: ../src/verbs.cpp:2336 +#: ../src/verbs.cpp:2334 msgid "In_vert Selection" msgstr "Selectie _omkeren" -#: ../src/verbs.cpp:2337 +#: ../src/verbs.cpp:2335 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "De selectie omkeren (alleen dat selecteren wat nu niet geselecteerd is)" -#: ../src/verbs.cpp:2338 +#: ../src/verbs.cpp:2336 msgid "Invert in All Layers" msgstr "Omkeren in alle lagen" -#: ../src/verbs.cpp:2339 +#: ../src/verbs.cpp:2337 msgid "Invert selection in all visible and unlocked layers" msgstr "De selectie omkeren in alle zichtbare en niet-vergrendelde lagen" -#: ../src/verbs.cpp:2340 +#: ../src/verbs.cpp:2338 msgid "Select Next" msgstr "Volgende selecteren" -#: ../src/verbs.cpp:2341 +#: ../src/verbs.cpp:2339 msgid "Select next object or node" msgstr "Volgend object of knooppunt selecteren" -#: ../src/verbs.cpp:2342 +#: ../src/verbs.cpp:2340 msgid "Select Previous" msgstr "Vorige selecteren" -#: ../src/verbs.cpp:2343 +#: ../src/verbs.cpp:2341 msgid "Select previous object or node" msgstr "Vorig object of knoopppunt selecteren" -#: ../src/verbs.cpp:2344 +#: ../src/verbs.cpp:2342 msgid "D_eselect" msgstr "S_electie opheffen" -#: ../src/verbs.cpp:2345 +#: ../src/verbs.cpp:2343 msgid "Deselect any selected objects or nodes" msgstr "Alles deselecteren" -#: ../src/verbs.cpp:2346 -msgid "_Guides Around Page" +#: ../src/verbs.cpp:2344 +#, fuzzy +msgid "Create _Guides Around the Page" msgstr "_Hulplijnen rond pagina" +#: ../src/verbs.cpp:2345 #: ../src/verbs.cpp:2347 msgid "Create four guides aligned with the page borders" msgstr "Vier hulplijnen maken op de paginaranden" @@ -20889,17 +21062,16 @@ msgid "_Save as SVG" msgstr "Op_slaan als SVG" #: ../src/widgets/desktop-widget.cpp:1163 -#, fuzzy msgid "Note:" -msgstr "Geen" +msgstr "" -#: ../src/widgets/ege-paint-def.cpp:69 -#: ../src/widgets/ege-paint-def.cpp:91 +#: ../src/widgets/ege-paint-def.cpp:70 +#: ../src/widgets/ege-paint-def.cpp:92 #: ../src/widgets/gradient-selector.cpp:173 msgid "none" msgstr "Niet" -#: ../src/widgets/ege-paint-def.cpp:88 +#: ../src/widgets/ege-paint-def.cpp:89 msgid "remove" msgstr "verwijderen" @@ -20934,27 +21106,21 @@ msgid "Set pattern on stroke" msgstr "Patroon instellen op lijn" #. Family frame -#: ../src/widgets/font-selector.cpp:151 -msgid "F_ont family" +#: ../src/widgets/font-selector.cpp:143 +#, fuzzy +msgid "Font family" msgstr "L_ettertypefamilie" #. Style frame -#: ../src/widgets/font-selector.cpp:186 +#: ../src/widgets/font-selector.cpp:174 msgctxt "Font selector" -msgid "_Style" -msgstr "_Stijl" - -#: ../src/widgets/font-selector.cpp:227 -msgid "Font si_ze:" -msgstr "Letter_grootte:" +msgid "Style" +msgstr "Stijl" -#. TRANSLATORS: Test string used in text and font dialog (when no -#. * text has been entered) to get a preview of the font. Choose -#. * some representative characters that users of your locale will be -#. * interested in. -#: ../src/widgets/font-selector.cpp:641 -msgid "AaBbCcIiPpQq12369$€¢?.;/()" -msgstr "AaBbCcIiMmPpQqWw(12369)€£$!?.;/@" +#: ../src/widgets/font-selector.cpp:212 +#: ../share/extensions/dots.inx.h:2 +msgid "Font size:" +msgstr "Lettergrootte:" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute #: ../src/widgets/gradient-selector.cpp:167 @@ -20998,14 +21164,14 @@ msgid "Edit the stops of the gradient" msgstr "De overgangen in het kleurverloop aanpassen" #: ../src/widgets/gradient-toolbar.cpp:543 -#: ../src/widgets/toolbox.cpp:2869 -#: ../src/widgets/toolbox.cpp:2949 -#: ../src/widgets/toolbox.cpp:3273 -#: ../src/widgets/toolbox.cpp:3311 -#: ../src/widgets/toolbox.cpp:3929 -#: ../src/widgets/toolbox.cpp:3953 -#: ../src/widgets/toolbox.cpp:5583 -#: ../src/widgets/toolbox.cpp:5612 +#: ../src/widgets/toolbox.cpp:2917 +#: ../src/widgets/toolbox.cpp:2997 +#: ../src/widgets/toolbox.cpp:3321 +#: ../src/widgets/toolbox.cpp:3359 +#: ../src/widgets/toolbox.cpp:3977 +#: ../src/widgets/toolbox.cpp:4001 +#: ../src/widgets/toolbox.cpp:5625 +#: ../src/widgets/toolbox.cpp:5654 msgid "New:" msgstr "Nieuw:" @@ -21033,18 +21199,18 @@ msgstr "Kleurverloop maken voor lijnen" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); #: ../src/widgets/gradient-toolbar.cpp:622 -#: ../src/widgets/toolbox.cpp:2871 -#: ../src/widgets/toolbox.cpp:3281 -#: ../src/widgets/toolbox.cpp:3299 -#: ../src/widgets/toolbox.cpp:3931 -#: ../src/widgets/toolbox.cpp:3942 -#: ../src/widgets/toolbox.cpp:5586 -#: ../src/widgets/toolbox.cpp:5597 +#: ../src/widgets/toolbox.cpp:2919 +#: ../src/widgets/toolbox.cpp:3329 +#: ../src/widgets/toolbox.cpp:3347 +#: ../src/widgets/toolbox.cpp:3979 +#: ../src/widgets/toolbox.cpp:3990 +#: ../src/widgets/toolbox.cpp:5628 +#: ../src/widgets/toolbox.cpp:5639 msgid "Change:" msgstr "Wijzigen:" #: ../src/widgets/gradient-vector.cpp:275 -#: ../src/widgets/paint-selector.cpp:912 +#: ../src/widgets/paint-selector.cpp:908 #: ../src/widgets/stroke-style.cpp:421 msgid "No document selected" msgstr "Geen document geselecteerd" @@ -21095,183 +21261,183 @@ msgstr "Kleurverloop-editor" msgid "Change gradient stop color" msgstr "Overgangskleur aanpassen" -#: ../src/widgets/paint-selector.cpp:229 -#: ../src/widgets/paint-selector.cpp:612 +#: ../src/widgets/paint-selector.cpp:225 +#: ../src/widgets/paint-selector.cpp:608 msgid "No paint" msgstr "Geen opvulling" -#: ../src/widgets/paint-selector.cpp:231 -#: ../src/widgets/paint-selector.cpp:676 +#: ../src/widgets/paint-selector.cpp:227 +#: ../src/widgets/paint-selector.cpp:672 msgid "Flat color" msgstr "Egale kleur" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:233 -#: ../src/widgets/paint-selector.cpp:739 +#: ../src/widgets/paint-selector.cpp:229 +#: ../src/widgets/paint-selector.cpp:735 msgid "Linear gradient" msgstr "Lineair kleurverloop" -#: ../src/widgets/paint-selector.cpp:235 -#: ../src/widgets/paint-selector.cpp:742 +#: ../src/widgets/paint-selector.cpp:231 +#: ../src/widgets/paint-selector.cpp:738 msgid "Radial gradient" msgstr "Radiaal kleurverloop" -#: ../src/widgets/paint-selector.cpp:239 +#: ../src/widgets/paint-selector.cpp:235 msgid "Swatch" msgstr "Palet" -#: ../src/widgets/paint-selector.cpp:241 +#: ../src/widgets/paint-selector.cpp:237 msgid "Unset paint (make it undefined so it can be inherited)" msgstr "Vulling uitzetten (ongedefinieerd maken zodat het overgenomen kan worden)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:253 +#: ../src/widgets/paint-selector.cpp:249 msgid "Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)" msgstr "Wanneer een pad zichzelf snijdt, ontstaat een gat (vulregel: evenoneven)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:264 +#: ../src/widgets/paint-selector.cpp:260 msgid "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "Vulling is zonder gaten (vulregel: nietnul)" -#: ../src/widgets/paint-selector.cpp:579 +#: ../src/widgets/paint-selector.cpp:575 msgid "No objects" msgstr "Geen objecten" -#: ../src/widgets/paint-selector.cpp:590 +#: ../src/widgets/paint-selector.cpp:586 msgid "Multiple styles" msgstr "Meerdere stijlen" -#: ../src/widgets/paint-selector.cpp:601 +#: ../src/widgets/paint-selector.cpp:597 msgid "Paint is undefined" msgstr "Vulling is niet gedefinieerd" -#: ../src/widgets/paint-selector.cpp:1012 +#: ../src/widgets/paint-selector.cpp:1008 msgid "Use the Node tool to adjust position, scale, and rotation of the pattern on canvas. Use Object > Pattern > Objects to Pattern to create a new pattern from selection." msgstr "Gebruik het knooppunten-gereedschap om positie, schaal en rotatie van het patroon aan te passen. Gebruik Object > Patroon > Objecten naar patroon om een nieuw patroon te maken uit de selectie." -#: ../src/widgets/paint-selector.cpp:1100 +#: ../src/widgets/paint-selector.cpp:1096 msgid "Swatch fill" msgstr "Vullingspalet" -#: ../src/widgets/select-toolbar.cpp:249 +#: ../src/widgets/select-toolbar.cpp:256 msgid "Transform by toolbar" msgstr "Transformeren met behulp van de gereedschappenbalk" -#: ../src/widgets/select-toolbar.cpp:322 +#: ../src/widgets/select-toolbar.cpp:329 msgid "Now stroke width is scaled when objects are scaled." msgstr "De lijndikte wordt nu meegeschaald wanneer objecten geschaald worden." -#: ../src/widgets/select-toolbar.cpp:324 +#: ../src/widgets/select-toolbar.cpp:331 msgid "Now stroke width is not scaled when objects are scaled." msgstr "De lijndikte wordt nu niet geschaald wanneer objecten geschaald worden." -#: ../src/widgets/select-toolbar.cpp:335 +#: ../src/widgets/select-toolbar.cpp:342 msgid "Now rounded rectangle corners are scaled when rectangles are scaled." msgstr "Afgeronde hoeken worden nu meegeschaald wanneer rechthoeken worden geschaald." -#: ../src/widgets/select-toolbar.cpp:337 +#: ../src/widgets/select-toolbar.cpp:344 msgid "Now rounded rectangle corners are not scaled when rectangles are scaled." msgstr "Afgeronde hoeken worden nu niet geschaald wanneer rechthoeken worden geschaald." -#: ../src/widgets/select-toolbar.cpp:348 +#: ../src/widgets/select-toolbar.cpp:355 msgid "Now gradients are transformed along with their objects when those are transformed (moved, scaled, rotated, or skewed)." msgstr "Kleurverlopen worden nu meeveranderd wanneer hun objecten worden veranderd (verplaatst, geschaald, gedraaid, of scheefgetrokken)." -#: ../src/widgets/select-toolbar.cpp:350 +#: ../src/widgets/select-toolbar.cpp:357 msgid "Now gradients remain fixed when objects are transformed (moved, scaled, rotated, or skewed)." msgstr "Kleurverlopen blijven nu gefixeerd wanneer hun objecten worden veranderd (verplaatst, geschaald, gedraaid, of scheefgetrokken)." -#: ../src/widgets/select-toolbar.cpp:361 +#: ../src/widgets/select-toolbar.cpp:368 msgid "Now patterns are transformed along with their objects when those are transformed (moved, scaled, rotated, or skewed)." msgstr "Patronen worden nu meeveranderd wanneer hun objecten worden veranderd (verplaatst, geschaald, gedraaid, of scheefgetrokken)." -#: ../src/widgets/select-toolbar.cpp:363 +#: ../src/widgets/select-toolbar.cpp:370 msgid "Now patterns remain fixed when objects are transformed (moved, scaled, rotated, or skewed)." msgstr "Patronen blijven nu gefixeerd wanneer hun objecten worden veranderd (verplaatst, geschaald, gedraaid, of scheefgetrokken)." #. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X position" msgstr "X-Positie" -#: ../src/widgets/select-toolbar.cpp:476 +#: ../src/widgets/select-toolbar.cpp:483 msgctxt "Select toolbar" msgid "X:" msgstr "X:" -#: ../src/widgets/select-toolbar.cpp:478 +#: ../src/widgets/select-toolbar.cpp:485 msgid "Horizontal coordinate of selection" msgstr "Horizontale coördinaat van de selectie" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y position" msgstr "Y-Positie" -#: ../src/widgets/select-toolbar.cpp:482 +#: ../src/widgets/select-toolbar.cpp:489 msgctxt "Select toolbar" msgid "Y:" msgstr "Y:" -#: ../src/widgets/select-toolbar.cpp:484 +#: ../src/widgets/select-toolbar.cpp:491 msgid "Vertical coordinate of selection" msgstr "Verticale coördinaat van de selectie" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "Width" msgstr "Breedte" -#: ../src/widgets/select-toolbar.cpp:488 +#: ../src/widgets/select-toolbar.cpp:495 msgctxt "Select toolbar" msgid "W:" msgstr "B:" -#: ../src/widgets/select-toolbar.cpp:490 +#: ../src/widgets/select-toolbar.cpp:497 msgid "Width of selection" msgstr "Breedte van de selectie" -#: ../src/widgets/select-toolbar.cpp:497 +#: ../src/widgets/select-toolbar.cpp:504 msgid "Lock width and height" msgstr "Verhouding tussen breedte en hoogte vastzetten" -#: ../src/widgets/select-toolbar.cpp:498 +#: ../src/widgets/select-toolbar.cpp:505 msgid "When locked, change both width and height by the same proportion" msgstr "Indien vastgezet, breedte en hoogte in dezelfde mate aanpassen" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "Height" msgstr "Hoogte" -#: ../src/widgets/select-toolbar.cpp:507 +#: ../src/widgets/select-toolbar.cpp:514 msgctxt "Select toolbar" msgid "H:" msgstr "H:" -#: ../src/widgets/select-toolbar.cpp:509 +#: ../src/widgets/select-toolbar.cpp:516 msgid "Height of selection" msgstr "Hoogte van de selectie" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "Affect:" msgstr "Werking:" -#: ../src/widgets/select-toolbar.cpp:546 +#: ../src/widgets/select-toolbar.cpp:553 msgid "Control whether or not to scale stroke widths, scale rectangle corners, transform gradient fills, and transform pattern fills with the object" msgstr "Al dan niet lijnbreedte schalen, hoeken rechthoek schalen, vulkleurverloop aanpassen en vulpatroon aanpassen met het object" -#: ../src/widgets/select-toolbar.cpp:565 +#: ../src/widgets/select-toolbar.cpp:572 msgid "Scale rounded corners" msgstr "Afgeronde hoeken schalen" -#: ../src/widgets/select-toolbar.cpp:576 +#: ../src/widgets/select-toolbar.cpp:583 msgid "Move gradients" msgstr "Kleurverlopen verplaatsen" -#: ../src/widgets/select-toolbar.cpp:587 +#: ../src/widgets/select-toolbar.cpp:594 msgid "Move patterns" msgstr "Patronen verplaatsen" @@ -21279,104 +21445,98 @@ msgstr "Patronen verplaatsen" msgid "System" msgstr "Systeem" -#: ../src/widgets/sp-color-icc-selector.cpp:105 +#: ../src/widgets/sp-color-icc-selector.cpp:106 msgid "CMS" msgstr "Kleurbeheersysteem" -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:402 msgid "_R:" msgstr "_R:" -#: ../src/widgets/sp-color-icc-selector.cpp:213 #: ../src/widgets/sp-color-icc-selector.cpp:214 +#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-scales.cpp:405 msgid "_G:" msgstr "_G:" -#: ../src/widgets/sp-color-icc-selector.cpp:213 +#: ../src/widgets/sp-color-icc-selector.cpp:214 #: ../src/widgets/sp-color-scales.cpp:408 msgid "_B:" msgstr "_B:" # Hue - Tint. -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:428 msgid "_H:" msgstr "_T:" # Saturation - Verzadiging. -#: ../src/widgets/sp-color-icc-selector.cpp:215 #: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:431 msgid "_S:" msgstr "_V:" # Lightness - Helderheid. -#: ../src/widgets/sp-color-icc-selector.cpp:216 +#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:434 msgid "_L:" msgstr "_L:" -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:456 msgid "_C:" msgstr "_C:" -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 +#: ../src/widgets/sp-color-icc-selector.cpp:219 #: ../src/widgets/sp-color-scales.cpp:459 msgid "_M:" msgstr "_M:" -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-icc-selector.cpp:218 -#: ../src/widgets/sp-color-scales.cpp:462 -msgid "_Y:" -msgstr "_Y:" - -#: ../src/widgets/sp-color-icc-selector.cpp:217 #: ../src/widgets/sp-color-scales.cpp:465 msgid "_K:" msgstr "_K:" -#: ../src/widgets/sp-color-icc-selector.cpp:228 +#: ../src/widgets/sp-color-icc-selector.cpp:229 msgid "Gray" msgstr "Grijs" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:457 #: ../src/widgets/sp-color-scales.cpp:458 msgid "Cyan" msgstr "Cyaan" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:460 #: ../src/widgets/sp-color-scales.cpp:461 msgid "Magenta" msgstr "Magenta" -#: ../src/widgets/sp-color-icc-selector.cpp:231 #: ../src/widgets/sp-color-icc-selector.cpp:232 +#: ../src/widgets/sp-color-icc-selector.cpp:233 #: ../src/widgets/sp-color-scales.cpp:463 #: ../src/widgets/sp-color-scales.cpp:464 msgid "Yellow" msgstr "Geel" -#: ../src/widgets/sp-color-icc-selector.cpp:287 +#: ../src/widgets/sp-color-icc-selector.cpp:294 msgid "Fix" msgstr "Corrigeren" -#: ../src/widgets/sp-color-icc-selector.cpp:290 +#: ../src/widgets/sp-color-icc-selector.cpp:297 msgid "Fix RGB fallback to match icc-color() value." msgstr "RGB-standaardwaarde aanpassen aan waarde van icc-color()." #. Label -#: ../src/widgets/sp-color-icc-selector.cpp:371 +#: ../src/widgets/sp-color-icc-selector.cpp:378 #: ../src/widgets/sp-color-scales.cpp:411 #: ../src/widgets/sp-color-scales.cpp:437 #: ../src/widgets/sp-color-scales.cpp:468 @@ -21384,8 +21544,8 @@ msgstr "RGB-standaardwaarde aanpassen aan waarde van icc-color()." msgid "_A:" msgstr "_A:" -#: ../src/widgets/sp-color-icc-selector.cpp:381 -#: ../src/widgets/sp-color-icc-selector.cpp:393 +#: ../src/widgets/sp-color-icc-selector.cpp:388 +#: ../src/widgets/sp-color-icc-selector.cpp:400 #: ../src/widgets/sp-color-scales.cpp:412 #: ../src/widgets/sp-color-scales.cpp:413 #: ../src/widgets/sp-color-scales.cpp:438 @@ -21397,24 +21557,24 @@ msgstr "_A:" msgid "Alpha (opacity)" msgstr "Alfa (ondoorzichtigheid)" -#: ../src/widgets/sp-color-notebook.cpp:337 +#: ../src/widgets/sp-color-notebook.cpp:339 msgid "Color Managed" msgstr "Kleur beheerd" -#: ../src/widgets/sp-color-notebook.cpp:344 +#: ../src/widgets/sp-color-notebook.cpp:346 msgid "Out of gamut!" msgstr "Buiten kleurbereik!" -#: ../src/widgets/sp-color-notebook.cpp:351 +#: ../src/widgets/sp-color-notebook.cpp:353 msgid "Too much ink!" msgstr "Te veel inkt!" #. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:358 +#: ../src/widgets/sp-color-notebook.cpp:360 msgid "RGBA_:" msgstr "RGBA_:" -#: ../src/widgets/sp-color-notebook.cpp:366 +#: ../src/widgets/sp-color-notebook.cpp:368 msgid "Hexadecimal RGBA value of the color" msgstr "Hexadecimale RGBA-waarde van de kleur" @@ -21608,1558 +21768,1583 @@ msgstr "Te bepalen" msgid "Style of Paint Bucket fill objects" msgstr "Stijl van nieuwe verfemmerobjecten" -#: ../src/widgets/toolbox.cpp:1368 +#: ../src/widgets/toolbox.cpp:1370 msgid "Insert node" msgstr "Knooppunt invoegen" -#: ../src/widgets/toolbox.cpp:1369 +#: ../src/widgets/toolbox.cpp:1371 msgid "Insert new nodes into selected segments" msgstr "Nieuwe knooppunten invoegen in geselecteerde segmenten" -#: ../src/widgets/toolbox.cpp:1372 +#: ../src/widgets/toolbox.cpp:1374 msgid "Insert" msgstr "Invoegen" -#: ../src/widgets/toolbox.cpp:1380 +#: ../src/widgets/toolbox.cpp:1382 msgid "Delete selected nodes" msgstr "Geselecteerde knooppunten verwijderen" -#: ../src/widgets/toolbox.cpp:1391 +#: ../src/widgets/toolbox.cpp:1393 msgid "Join selected nodes" msgstr "Geselecteerde knooppunten verbinden" -#: ../src/widgets/toolbox.cpp:1394 +#: ../src/widgets/toolbox.cpp:1396 msgid "Join" msgstr "Verbinden" -#: ../src/widgets/toolbox.cpp:1402 +#: ../src/widgets/toolbox.cpp:1404 msgid "Break path at selected nodes" msgstr "Het pad op geselecteerde knooppunten verbreken" -#: ../src/widgets/toolbox.cpp:1412 +#: ../src/widgets/toolbox.cpp:1414 msgid "Join with segment" msgstr "Verbinden met segment" -#: ../src/widgets/toolbox.cpp:1413 +#: ../src/widgets/toolbox.cpp:1415 msgid "Join selected endnodes with a new segment" msgstr "Geselecteerde eindpunten verbinden met een nieuw segment" -#: ../src/widgets/toolbox.cpp:1422 +#: ../src/widgets/toolbox.cpp:1424 msgid "Delete segment" msgstr "Segment verwijderen" -#: ../src/widgets/toolbox.cpp:1423 +#: ../src/widgets/toolbox.cpp:1425 msgid "Delete segment between two non-endpoint nodes" msgstr "Het pad tussen twee niet-eindpunten verwijderen" -#: ../src/widgets/toolbox.cpp:1432 +#: ../src/widgets/toolbox.cpp:1434 msgid "Node Cusp" msgstr "Hoekig knooppunt" -#: ../src/widgets/toolbox.cpp:1433 +#: ../src/widgets/toolbox.cpp:1435 msgid "Make selected nodes corner" msgstr "Geselecteerde knooppunten hoekig maken" -#: ../src/widgets/toolbox.cpp:1442 +#: ../src/widgets/toolbox.cpp:1444 msgid "Node Smooth" msgstr "Glad knooppunt" -#: ../src/widgets/toolbox.cpp:1443 +#: ../src/widgets/toolbox.cpp:1445 msgid "Make selected nodes smooth" msgstr "Geselecteerde knooppunten glad maken" -#: ../src/widgets/toolbox.cpp:1452 +#: ../src/widgets/toolbox.cpp:1454 msgid "Node Symmetric" msgstr "Symmetrisch knooppunt" -#: ../src/widgets/toolbox.cpp:1453 +#: ../src/widgets/toolbox.cpp:1455 msgid "Make selected nodes symmetric" msgstr "Geselecteerde knooppunten symmetrisch maken" -#: ../src/widgets/toolbox.cpp:1462 +#: ../src/widgets/toolbox.cpp:1464 msgid "Node Auto" msgstr "Automatisch knooppunt" -#: ../src/widgets/toolbox.cpp:1463 +#: ../src/widgets/toolbox.cpp:1465 msgid "Make selected nodes auto-smooth" msgstr "Geselecteerde knooppunten automatisch glad maken" -#: ../src/widgets/toolbox.cpp:1472 +#: ../src/widgets/toolbox.cpp:1474 msgid "Node Line" msgstr "Recht knooppunt" -#: ../src/widgets/toolbox.cpp:1473 +#: ../src/widgets/toolbox.cpp:1475 msgid "Make selected segments lines" msgstr "Van geselecteerde segmenten rechte lijnen maken" -#: ../src/widgets/toolbox.cpp:1482 +#: ../src/widgets/toolbox.cpp:1484 msgid "Node Curve" msgstr "Krom knooppunt" -#: ../src/widgets/toolbox.cpp:1483 +#: ../src/widgets/toolbox.cpp:1485 msgid "Make selected segments curves" msgstr "Van geselecteerde segmenten krommes maken" -#: ../src/widgets/toolbox.cpp:1492 +#: ../src/widgets/toolbox.cpp:1494 msgid "Show Transform Handles" msgstr "Transformatiehandvatten tonen" -#: ../src/widgets/toolbox.cpp:1493 +#: ../src/widgets/toolbox.cpp:1495 msgid "Show transformation handles for selected nodes" msgstr "Transformatiehandvatten tonen voor geselecteerde knooppunten" -#: ../src/widgets/toolbox.cpp:1503 +#: ../src/widgets/toolbox.cpp:1505 msgid "Show Handles" msgstr "Handvatten tonen" -#: ../src/widgets/toolbox.cpp:1504 +#: ../src/widgets/toolbox.cpp:1506 msgid "Show Bezier handles of selected nodes" msgstr "Bezierhandvatten van geselecteerde knooppunten tonen" -#: ../src/widgets/toolbox.cpp:1514 +#: ../src/widgets/toolbox.cpp:1516 msgid "Show Outline" msgstr "Silhouet tonen" -#: ../src/widgets/toolbox.cpp:1515 +#: ../src/widgets/toolbox.cpp:1517 msgid "Show path outline (without path effects)" msgstr "Padindicator tonen (zonder padeffecten)" -#: ../src/widgets/toolbox.cpp:1537 +#: ../src/widgets/toolbox.cpp:1539 msgid "Edit clipping paths" msgstr "Afsnijpaden bewerken" -#: ../src/widgets/toolbox.cpp:1538 +#: ../src/widgets/toolbox.cpp:1540 msgid "Show clipping path(s) of selected object(s)" msgstr "Afsnijdingspad(en) van geselecteerde object(en) tonen" -#: ../src/widgets/toolbox.cpp:1548 +#: ../src/widgets/toolbox.cpp:1550 msgid "Edit masks" msgstr "Maskers bewerken" -#: ../src/widgets/toolbox.cpp:1549 +#: ../src/widgets/toolbox.cpp:1551 msgid "Show mask(s) of selected object(s)" msgstr "Masker(s) van geselecteerde object(en) tonen" -#: ../src/widgets/toolbox.cpp:1563 +#: ../src/widgets/toolbox.cpp:1565 msgid "X coordinate:" msgstr "X-coördinaat:" # Er wordt altijd maar één coördinaat getoond, dus enkelvoud is beter. -#: ../src/widgets/toolbox.cpp:1563 +#: ../src/widgets/toolbox.cpp:1565 msgid "X coordinate of selected node(s)" msgstr "X-coördinaat van geselecteerd knooppunt" -#: ../src/widgets/toolbox.cpp:1581 +#: ../src/widgets/toolbox.cpp:1583 msgid "Y coordinate:" msgstr "Y-coördinaat:" -#: ../src/widgets/toolbox.cpp:1581 +#: ../src/widgets/toolbox.cpp:1583 msgid "Y coordinate of selected node(s)" msgstr "Y-coördinaat van geselecteerd knooppunt" -#: ../src/widgets/toolbox.cpp:1665 -#: ../src/widgets/toolbox.cpp:7583 +#: ../src/widgets/toolbox.cpp:1667 +#: ../src/widgets/toolbox.cpp:7625 msgid "Font Size" msgstr "Lettertypegrootte" -#: ../src/widgets/toolbox.cpp:1665 +#: ../src/widgets/toolbox.cpp:1667 msgid "Font Size:" msgstr "Lettertypegrootte:" -#: ../src/widgets/toolbox.cpp:1666 +#: ../src/widgets/toolbox.cpp:1668 msgid "The font size to be used in the measurement labels" msgstr "Lettertypegrootte voor de meetlabels" -#: ../src/widgets/toolbox.cpp:2264 +#: ../src/widgets/toolbox.cpp:1680 +#: ../src/widgets/toolbox.cpp:1688 +#, fuzzy +msgid "The units to be used for the measurements" +msgstr "Lettertypegrootte voor de meetlabels" + +#: ../src/widgets/toolbox.cpp:2286 msgid "Bounding box" msgstr "Omvattend vak" -#: ../src/widgets/toolbox.cpp:2264 +#: ../src/widgets/toolbox.cpp:2286 msgid "Snap bounding box corners" msgstr "Aan hoeken van omvattend vak kleven" -#: ../src/widgets/toolbox.cpp:2273 +#: ../src/widgets/toolbox.cpp:2295 msgid "Bounding box edges" msgstr "Randen van omvattend vak" -#: ../src/widgets/toolbox.cpp:2273 +#: ../src/widgets/toolbox.cpp:2295 msgid "Snap to edges of a bounding box" msgstr "Aan randen van omvattend vak kleven" -#: ../src/widgets/toolbox.cpp:2282 +#: ../src/widgets/toolbox.cpp:2304 msgid "Bounding box corners" -msgstr "_Hoeken van omvattend vak" +msgstr "Hoeken van omvattend vak" -#: ../src/widgets/toolbox.cpp:2282 +#: ../src/widgets/toolbox.cpp:2304 msgid "Snap to bounding box corners" msgstr "Aan hoeken van omvattend vak kleven" -#: ../src/widgets/toolbox.cpp:2291 +#: ../src/widgets/toolbox.cpp:2313 msgid "BBox Edge Midpoints" msgstr "Midden randen omvattend vak" -#: ../src/widgets/toolbox.cpp:2291 +#: ../src/widgets/toolbox.cpp:2313 msgid "Snap from and to midpoints of bounding box edges" msgstr "Aan het midden van de randen van het omvattend vak kleven" -#: ../src/widgets/toolbox.cpp:2301 +#: ../src/widgets/toolbox.cpp:2323 msgid "BBox Centers" msgstr "Middelpunt omvattend vak" -#: ../src/widgets/toolbox.cpp:2301 +#: ../src/widgets/toolbox.cpp:2323 msgid "Snapping from and to centers of bounding boxes" msgstr "Aan het middelpunt van omvattende vakken kleven" -#: ../src/widgets/toolbox.cpp:2310 +#: ../src/widgets/toolbox.cpp:2332 msgid "Snap nodes or handles" msgstr "Aan knooppunten of handvatten kleven" -#: ../src/widgets/toolbox.cpp:2318 +#: ../src/widgets/toolbox.cpp:2340 msgid "Snap to paths" msgstr "Aan paden kleven" -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2349 msgid "Path intersections" msgstr "Kruispunten van paden" -#: ../src/widgets/toolbox.cpp:2327 +#: ../src/widgets/toolbox.cpp:2349 msgid "Snap to path intersections" msgstr "Aan kruispunten van paden kleven" -#: ../src/widgets/toolbox.cpp:2336 +#: ../src/widgets/toolbox.cpp:2358 msgid "To nodes" msgstr "Aan knooppunten" -#: ../src/widgets/toolbox.cpp:2336 +#: ../src/widgets/toolbox.cpp:2358 msgid "Snap to cusp nodes" msgstr "Aan hoekige knooppunten kleven" -#: ../src/widgets/toolbox.cpp:2345 +#: ../src/widgets/toolbox.cpp:2367 msgid "Smooth nodes" msgstr "Afgevlakte knooppunten" -#: ../src/widgets/toolbox.cpp:2345 +#: ../src/widgets/toolbox.cpp:2367 msgid "Snap to smooth nodes" msgstr "Aan afgevlakte knooppunten kleven" -#: ../src/widgets/toolbox.cpp:2354 +#: ../src/widgets/toolbox.cpp:2376 msgid "Line Midpoints" msgstr "Midden lijnsegment" -#: ../src/widgets/toolbox.cpp:2354 +#: ../src/widgets/toolbox.cpp:2376 msgid "Snap from and to midpoints of line segments" msgstr "Aan midden van lijnsegmenten kleven" -#: ../src/widgets/toolbox.cpp:2363 +#: ../src/widgets/toolbox.cpp:2385 +#, fuzzy +msgid "Others" +msgstr "Anders" + +#: ../src/widgets/toolbox.cpp:2385 +msgid "Snap other points (centers, guide origins, gradient handles, etc.)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:2393 msgid "Object Centers" msgstr "Objectmiddelpunten" -#: ../src/widgets/toolbox.cpp:2363 +#: ../src/widgets/toolbox.cpp:2393 msgid "Snap from and to centers of objects" msgstr "Aan het middelpunt van objecten kleven" -#: ../src/widgets/toolbox.cpp:2372 +#: ../src/widgets/toolbox.cpp:2402 msgid "Rotation Centers" msgstr "Rotatiemiddelpunt" -#: ../src/widgets/toolbox.cpp:2372 +#: ../src/widgets/toolbox.cpp:2402 msgid "Snap from and to an item's rotation center" msgstr "Aan het rotatiecentrum van een item kleven" -#: ../src/widgets/toolbox.cpp:2381 +#: ../src/widgets/toolbox.cpp:2411 +msgid "Text baseline" +msgstr "Grondlijn tekst" + +#: ../src/widgets/toolbox.cpp:2411 +#, fuzzy +msgid "Snap from and to text anchors and baselines" +msgstr "Aan het middelpunt van objecten kleven" + +#: ../src/widgets/toolbox.cpp:2421 msgid "Page border" msgstr "Paginarand" -#: ../src/widgets/toolbox.cpp:2381 +#: ../src/widgets/toolbox.cpp:2421 msgid "Snap to the page border" msgstr "Aan paginarand kleven" -#: ../src/widgets/toolbox.cpp:2390 +#: ../src/widgets/toolbox.cpp:2430 msgid "Snap to grids" msgstr "Aan rasters kleven" -#: ../src/widgets/toolbox.cpp:2399 +#: ../src/widgets/toolbox.cpp:2439 msgid "Snap to guides" msgstr "Aan hulplijnen kleven" -#: ../src/widgets/toolbox.cpp:2604 +#: ../src/widgets/toolbox.cpp:2652 msgid "Star: Change number of corners" msgstr "Ster: aantal hoeken veranderen" -#: ../src/widgets/toolbox.cpp:2652 +#: ../src/widgets/toolbox.cpp:2700 msgid "Star: Change spoke ratio" msgstr "Ster: spaakverhouding veranderen" -#: ../src/widgets/toolbox.cpp:2697 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make polygon" msgstr "Veelhoek maken" -#: ../src/widgets/toolbox.cpp:2697 +#: ../src/widgets/toolbox.cpp:2745 msgid "Make star" msgstr "Ster maken" -#: ../src/widgets/toolbox.cpp:2735 +#: ../src/widgets/toolbox.cpp:2783 msgid "Star: Change rounding" msgstr "Ster: afronding veranderen" -#: ../src/widgets/toolbox.cpp:2773 +#: ../src/widgets/toolbox.cpp:2821 msgid "Star: Change randomization" msgstr "Ster: willekeurigheid veranderen" -#: ../src/widgets/toolbox.cpp:2968 +#: ../src/widgets/toolbox.cpp:3016 msgid "Regular polygon (with one handle) instead of a star" msgstr "Regelmatige veelhoek (met één handvat) in plaats van een ster" -#: ../src/widgets/toolbox.cpp:2975 +#: ../src/widgets/toolbox.cpp:3023 msgid "Star instead of a regular polygon (with one handle)" msgstr "Ster in plaats van regelmatige veelhoek (met één handvat)" -#: ../src/widgets/toolbox.cpp:2996 +#: ../src/widgets/toolbox.cpp:3044 msgid "triangle/tri-star" msgstr "driehoek/driepuntige ster" -#: ../src/widgets/toolbox.cpp:2996 +#: ../src/widgets/toolbox.cpp:3044 msgid "square/quad-star" msgstr "vierkant/vierpuntige ster" -#: ../src/widgets/toolbox.cpp:2996 +#: ../src/widgets/toolbox.cpp:3044 msgid "pentagon/five-pointed star" msgstr "vijfhoek/vijfpuntige ster" -#: ../src/widgets/toolbox.cpp:2996 +#: ../src/widgets/toolbox.cpp:3044 msgid "hexagon/six-pointed star" msgstr "zeshoek/zespuntige ster" -#: ../src/widgets/toolbox.cpp:2999 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners" msgstr "Hoeken" -#: ../src/widgets/toolbox.cpp:2999 +#: ../src/widgets/toolbox.cpp:3047 msgid "Corners:" msgstr "Hoeken:" -#: ../src/widgets/toolbox.cpp:2999 +#: ../src/widgets/toolbox.cpp:3047 msgid "Number of corners of a polygon or star" msgstr "Aantal hoeken van een veelhoek of ster" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "thin-ray star" msgstr "dunstralige ster" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "pentagram" msgstr "pentagram" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "hexagram" msgstr "hexagram" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "heptagram" msgstr "heptagram" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "octagram" msgstr "octagram" -#: ../src/widgets/toolbox.cpp:3012 +#: ../src/widgets/toolbox.cpp:3060 msgid "regular polygon" msgstr "regelmatige veelhoek" -#: ../src/widgets/toolbox.cpp:3015 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio" msgstr "Spaakverhouding" -#: ../src/widgets/toolbox.cpp:3015 +#: ../src/widgets/toolbox.cpp:3063 msgid "Spoke ratio:" msgstr "Spaakverhouding:" #. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. #. Base radius is the same for the closest handle. -#: ../src/widgets/toolbox.cpp:3018 +#: ../src/widgets/toolbox.cpp:3066 msgid "Base radius to tip radius ratio" msgstr "Verhouding tussen de straal en de lengte van een spaak" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "stretched" msgstr "uitgerekt" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "twisted" msgstr "gewrongen" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly pinched" msgstr "licht afgeknepen" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "NOT rounded" msgstr "NIET afgerond" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "slightly rounded" msgstr "licht afgerond" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "visibly rounded" msgstr "zichtbaar afgerond" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "well rounded" msgstr "goed afgerond" -#: ../src/widgets/toolbox.cpp:3036 +#: ../src/widgets/toolbox.cpp:3084 msgid "amply rounded" msgstr "flink afgerond" -#: ../src/widgets/toolbox.cpp:3036 -#: ../src/widgets/toolbox.cpp:3051 +#: ../src/widgets/toolbox.cpp:3084 +#: ../src/widgets/toolbox.cpp:3099 msgid "blown up" msgstr "opgeblazen" -#: ../src/widgets/toolbox.cpp:3039 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded" msgstr "Afgerond" # Het gaat hier om een hoeveelheid. -#: ../src/widgets/toolbox.cpp:3039 +#: ../src/widgets/toolbox.cpp:3087 msgid "Rounded:" msgstr "Afronding:" -#: ../src/widgets/toolbox.cpp:3039 +#: ../src/widgets/toolbox.cpp:3087 msgid "How much rounded are the corners (0 for sharp)" msgstr "Hoe hoeken worden afgerond (0 voor scherpe hoeken)" -#: ../src/widgets/toolbox.cpp:3051 +#: ../src/widgets/toolbox.cpp:3099 msgid "NOT randomized" msgstr "GEEN willekeur" -#: ../src/widgets/toolbox.cpp:3051 +#: ../src/widgets/toolbox.cpp:3099 msgid "slightly irregular" msgstr "licht onregelmatig" -#: ../src/widgets/toolbox.cpp:3051 +#: ../src/widgets/toolbox.cpp:3099 msgid "visibly randomized" msgstr "zichtbaar onregelmatig" -#: ../src/widgets/toolbox.cpp:3051 +#: ../src/widgets/toolbox.cpp:3099 msgid "strongly randomized" msgstr "sterk onregelmatig" -#: ../src/widgets/toolbox.cpp:3054 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized" msgstr "Willekeur" -#: ../src/widgets/toolbox.cpp:3054 +#: ../src/widgets/toolbox.cpp:3102 msgid "Randomized:" msgstr "Willekeur:" -#: ../src/widgets/toolbox.cpp:3054 +#: ../src/widgets/toolbox.cpp:3102 msgid "Scatter randomly the corners and angles" msgstr "Punten en hoeken willekeurig uitspreiden" -#: ../src/widgets/toolbox.cpp:3069 -#: ../src/widgets/toolbox.cpp:4004 -#: ../src/widgets/toolbox.cpp:4259 -#: ../src/widgets/toolbox.cpp:8562 +#: ../src/widgets/toolbox.cpp:3117 +#: ../src/widgets/toolbox.cpp:4052 +#: ../src/widgets/toolbox.cpp:4307 +#: ../src/widgets/toolbox.cpp:8604 msgid "Defaults" msgstr "Standaardwaarden" -#: ../src/widgets/toolbox.cpp:3070 -#: ../src/widgets/toolbox.cpp:4005 +#: ../src/widgets/toolbox.cpp:3118 +#: ../src/widgets/toolbox.cpp:4053 msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Zet de instellingen van de vorm terug naar de standaard instellingen (gebruik Bestand -> Inkscape voorkeuren -> Gereedschappen om de standaard instellingen te wijzigen)" -#: ../src/widgets/toolbox.cpp:3142 +#: ../src/widgets/toolbox.cpp:3190 msgid "Change rectangle" msgstr "Rechthoek aanpassen" -#: ../src/widgets/toolbox.cpp:3329 +#: ../src/widgets/toolbox.cpp:3377 msgid "W:" msgstr "B:" -#: ../src/widgets/toolbox.cpp:3329 +#: ../src/widgets/toolbox.cpp:3377 msgid "Width of rectangle" msgstr "Breedte van de rechthoek" -#: ../src/widgets/toolbox.cpp:3346 +#: ../src/widgets/toolbox.cpp:3394 msgid "H:" msgstr "H:" -#: ../src/widgets/toolbox.cpp:3346 +#: ../src/widgets/toolbox.cpp:3394 msgid "Height of rectangle" msgstr "Hoogte van de rechthoek" -#: ../src/widgets/toolbox.cpp:3360 -#: ../src/widgets/toolbox.cpp:3375 +#: ../src/widgets/toolbox.cpp:3408 +#: ../src/widgets/toolbox.cpp:3423 msgid "not rounded" msgstr "zonder afronding" -#: ../src/widgets/toolbox.cpp:3363 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius" msgstr "Horizontale straal" -#: ../src/widgets/toolbox.cpp:3363 +#: ../src/widgets/toolbox.cpp:3411 msgid "Rx:" msgstr "Rx:" -#: ../src/widgets/toolbox.cpp:3363 +#: ../src/widgets/toolbox.cpp:3411 msgid "Horizontal radius of rounded corners" msgstr "Horizontale straal van afgeronde hoeken" -#: ../src/widgets/toolbox.cpp:3378 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius" msgstr "Verticale straal" -#: ../src/widgets/toolbox.cpp:3378 +#: ../src/widgets/toolbox.cpp:3426 msgid "Ry:" msgstr "Ry:" -#: ../src/widgets/toolbox.cpp:3378 +#: ../src/widgets/toolbox.cpp:3426 msgid "Vertical radius of rounded corners" msgstr "Verticale straal van afgeronde hoeken" -#: ../src/widgets/toolbox.cpp:3397 +#: ../src/widgets/toolbox.cpp:3445 msgid "Not rounded" msgstr "Niet afgerond" -#: ../src/widgets/toolbox.cpp:3398 +#: ../src/widgets/toolbox.cpp:3446 msgid "Make corners sharp" msgstr "De hoeken weer scherp maken" #. TODO: use the correct axis here, too -#: ../src/widgets/toolbox.cpp:3593 +#: ../src/widgets/toolbox.cpp:3641 msgid "3D Box: Change perspective (angle of infinite axis)" msgstr "3D-kubus: Perspectief veranderen (hoek van oneindige as)" -#: ../src/widgets/toolbox.cpp:3660 +#: ../src/widgets/toolbox.cpp:3708 msgid "Angle in X direction" msgstr "Hoek in X-richting" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3662 +#: ../src/widgets/toolbox.cpp:3710 msgid "Angle of PLs in X direction" msgstr "Hoek van perspectieflijn in X-richting" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3684 +#: ../src/widgets/toolbox.cpp:3732 msgid "State of VP in X direction" msgstr "Toestand van verdwijnpunt in X-richting" -#: ../src/widgets/toolbox.cpp:3685 +#: ../src/widgets/toolbox.cpp:3733 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" msgstr "Verdwijnpunt in X-richting omschakelen tussen 'eindig ' en 'oneindig' (=parallel)" -#: ../src/widgets/toolbox.cpp:3700 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle in Y direction" msgstr "Hoek in Y-richting" -#: ../src/widgets/toolbox.cpp:3700 +#: ../src/widgets/toolbox.cpp:3748 msgid "Angle Y:" msgstr "Y-hoek:" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3702 +#: ../src/widgets/toolbox.cpp:3750 msgid "Angle of PLs in Y direction" msgstr "Hoek van perspectieflijn in Y-richting" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3723 +#: ../src/widgets/toolbox.cpp:3771 msgid "State of VP in Y direction" msgstr "Toestand van verdwijnpunt in Y-richting" -#: ../src/widgets/toolbox.cpp:3724 +#: ../src/widgets/toolbox.cpp:3772 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" msgstr "Verdwijnpunt in Y-richting omschakelen tussen 'eindig' en 'oneindig' (=parallel)" -#: ../src/widgets/toolbox.cpp:3739 +#: ../src/widgets/toolbox.cpp:3787 msgid "Angle in Z direction" msgstr "Hoek in Z-richting" #. Translators: PL is short for 'perspective line' -#: ../src/widgets/toolbox.cpp:3741 +#: ../src/widgets/toolbox.cpp:3789 msgid "Angle of PLs in Z direction" msgstr "Hoek van perspectieflijn in Z-richting" #. Translators: VP is short for 'vanishing point' -#: ../src/widgets/toolbox.cpp:3762 +#: ../src/widgets/toolbox.cpp:3810 msgid "State of VP in Z direction" msgstr "Toestand van verdwijnpunt in Z-richting" -#: ../src/widgets/toolbox.cpp:3763 +#: ../src/widgets/toolbox.cpp:3811 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" msgstr "Verdwijnpunt in Z-richting omschakelen tussen 'eindig ' en 'oneindig' (=parallel)" -#: ../src/widgets/toolbox.cpp:3821 +#: ../src/widgets/toolbox.cpp:3869 msgid "Change spiral" msgstr "Spiraal aanpassen" -#: ../src/widgets/toolbox.cpp:3961 +#: ../src/widgets/toolbox.cpp:4009 msgid "just a curve" msgstr "gewoon een kromme" -#: ../src/widgets/toolbox.cpp:3961 +#: ../src/widgets/toolbox.cpp:4009 msgid "one full revolution" msgstr "één hele omwenteling" -#: ../src/widgets/toolbox.cpp:3964 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of turns" msgstr "Aantal stappen" -#: ../src/widgets/toolbox.cpp:3964 +#: ../src/widgets/toolbox.cpp:4012 msgid "Turns:" msgstr "Omwentelingen:" -#: ../src/widgets/toolbox.cpp:3964 +#: ../src/widgets/toolbox.cpp:4012 msgid "Number of revolutions" msgstr "Aantal omwentelingen" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "circle" msgstr "cirkel" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is much denser" msgstr "rand is veel dichter" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "edge is denser" msgstr "rand is dichter" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "even" msgstr "gelijkmatig" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is denser" msgstr "centrum is dichter" -#: ../src/widgets/toolbox.cpp:3975 +#: ../src/widgets/toolbox.cpp:4023 msgid "center is much denser" msgstr "centrum is veel dichter" -#: ../src/widgets/toolbox.cpp:3978 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence" msgstr "Uitwaaiering" -#: ../src/widgets/toolbox.cpp:3978 +#: ../src/widgets/toolbox.cpp:4026 msgid "Divergence:" msgstr "Uitwaaiering:" -#: ../src/widgets/toolbox.cpp:3978 +#: ../src/widgets/toolbox.cpp:4026 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "Hoeveel de buitenste omwentelingen uitwaaieren; 1=gelijkmatig" -#: ../src/widgets/toolbox.cpp:3989 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts from center" msgstr "begint in centrum" -#: ../src/widgets/toolbox.cpp:3989 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts mid-way" msgstr "begint halfweg" -#: ../src/widgets/toolbox.cpp:3989 +#: ../src/widgets/toolbox.cpp:4037 msgid "starts near edge" msgstr "begint bij rand" -#: ../src/widgets/toolbox.cpp:3992 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius" msgstr "Binnenstraal" -#: ../src/widgets/toolbox.cpp:3992 +#: ../src/widgets/toolbox.cpp:4040 msgid "Inner radius:" msgstr "Binnenstraal:" -#: ../src/widgets/toolbox.cpp:3992 +#: ../src/widgets/toolbox.cpp:4040 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "Straal van de binnenste omwenteling (ten opzichte van de spiraalgrootte)" -#: ../src/widgets/toolbox.cpp:4064 +#: ../src/widgets/toolbox.cpp:4112 msgid "Bezier" msgstr "Bezier" -#: ../src/widgets/toolbox.cpp:4065 +#: ../src/widgets/toolbox.cpp:4113 msgid "Create regular Bezier path" msgstr "Regulier Bezierpad aanmaken" -#: ../src/widgets/toolbox.cpp:4071 +#: ../src/widgets/toolbox.cpp:4119 msgid "Spiro" msgstr "Spiraal" -#: ../src/widgets/toolbox.cpp:4072 +#: ../src/widgets/toolbox.cpp:4120 msgid "Create Spiro path" msgstr "Spiraal maken" -#: ../src/widgets/toolbox.cpp:4079 +#: ../src/widgets/toolbox.cpp:4127 msgid "Zigzag" msgstr "Zigzag" -#: ../src/widgets/toolbox.cpp:4080 +#: ../src/widgets/toolbox.cpp:4128 msgid "Create a sequence of straight line segments" msgstr "Een sequentie van rechte lijnstukken maken" -#: ../src/widgets/toolbox.cpp:4086 +#: ../src/widgets/toolbox.cpp:4134 msgid "Paraxial" msgstr "Loodrecht" -#: ../src/widgets/toolbox.cpp:4087 +#: ../src/widgets/toolbox.cpp:4135 msgid "Create a sequence of paraxial line segments" msgstr "Een sequentie van onderling loodrechte lijnstukken maken" -#: ../src/widgets/toolbox.cpp:4095 +#: ../src/widgets/toolbox.cpp:4143 msgid "Mode of new lines drawn by this tool" msgstr "Modus van nieuwe lijnen getekend door dit gereedschap" -#: ../src/widgets/toolbox.cpp:4124 +#: ../src/widgets/toolbox.cpp:4172 msgid "Triangle in" msgstr "Aflopende driehoek" -#: ../src/widgets/toolbox.cpp:4125 +#: ../src/widgets/toolbox.cpp:4173 msgid "Triangle out" msgstr "Oplopende driehoek" -#: ../src/widgets/toolbox.cpp:4127 +#: ../src/widgets/toolbox.cpp:4175 msgid "From clipboard" msgstr "Van klembord" -#: ../src/widgets/toolbox.cpp:4152 -#: ../src/widgets/toolbox.cpp:4153 +#: ../src/widgets/toolbox.cpp:4200 +#: ../src/widgets/toolbox.cpp:4201 msgid "Shape:" msgstr "Vorm:" -#: ../src/widgets/toolbox.cpp:4152 +#: ../src/widgets/toolbox.cpp:4200 msgid "Shape of new paths drawn by this tool" msgstr "Vorm van nieuwe paden getekend met dit gereedschap" -#: ../src/widgets/toolbox.cpp:4236 +#: ../src/widgets/toolbox.cpp:4284 msgid "(many nodes, rough)" msgstr "(veel knooppunten, ruw)" #. Mean #. Rotation #. Scale -#: ../src/widgets/toolbox.cpp:4236 -#: ../src/widgets/toolbox.cpp:4344 -#: ../src/widgets/toolbox.cpp:4361 -#: ../src/widgets/toolbox.cpp:4569 -#: ../src/widgets/toolbox.cpp:4664 -#: ../src/widgets/toolbox.cpp:4680 -#: ../src/widgets/toolbox.cpp:4696 -#: ../src/widgets/toolbox.cpp:4756 -#: ../src/widgets/toolbox.cpp:4786 -#: ../src/widgets/toolbox.cpp:4804 -#: ../src/widgets/toolbox.cpp:5159 -#: ../src/widgets/toolbox.cpp:5192 -#: ../src/widgets/toolbox.cpp:6221 +#: ../src/widgets/toolbox.cpp:4284 +#: ../src/widgets/toolbox.cpp:4392 +#: ../src/widgets/toolbox.cpp:4409 +#: ../src/widgets/toolbox.cpp:4617 +#: ../src/widgets/toolbox.cpp:4706 +#: ../src/widgets/toolbox.cpp:4722 +#: ../src/widgets/toolbox.cpp:4738 +#: ../src/widgets/toolbox.cpp:4798 +#: ../src/widgets/toolbox.cpp:4828 +#: ../src/widgets/toolbox.cpp:4846 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:5234 +#: ../src/widgets/toolbox.cpp:6263 msgid "(default)" msgstr "(standaard)" -#: ../src/widgets/toolbox.cpp:4236 +#: ../src/widgets/toolbox.cpp:4284 msgid "(few nodes, smooth)" msgstr "(weinig knooppunten, glad)" -#: ../src/widgets/toolbox.cpp:4239 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing:" msgstr "Afvlakking:" -#: ../src/widgets/toolbox.cpp:4239 +#: ../src/widgets/toolbox.cpp:4287 msgid "Smoothing: " msgstr "Afvlakking: " -#: ../src/widgets/toolbox.cpp:4240 +#: ../src/widgets/toolbox.cpp:4288 msgid "How much smoothing (simplifying) is applied to the line" msgstr "Hoeveel afvlakking (vereenvoudiging) er toegepast wordt op de lijn" -#: ../src/widgets/toolbox.cpp:4260 +#: ../src/widgets/toolbox.cpp:4308 msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Instellingen potlood terugzetten naar de standaardwaarden (gebruik Inkscape-voorkeuren > Gereedschappen om de standaardwaarden te veranderen)" #. Width -#: ../src/widgets/toolbox.cpp:4344 +#: ../src/widgets/toolbox.cpp:4392 msgid "(pinch tweak)" msgstr "(precieze boetsering)" -#: ../src/widgets/toolbox.cpp:4344 +#: ../src/widgets/toolbox.cpp:4392 msgid "(broad tweak)" msgstr "(brede boetsering)" -#: ../src/widgets/toolbox.cpp:4347 +#: ../src/widgets/toolbox.cpp:4395 msgid "The width of the tweak area (relative to the visible canvas area)" msgstr "De grootte van het boetseergebied (ten opzichte van het zichtbare canvas)" #. Force -#: ../src/widgets/toolbox.cpp:4361 +#: ../src/widgets/toolbox.cpp:4409 msgid "(minimum force)" msgstr "(minimale kracht)" -#: ../src/widgets/toolbox.cpp:4361 +#: ../src/widgets/toolbox.cpp:4409 msgid "(maximum force)" msgstr "(maximale kracht)" -#: ../src/widgets/toolbox.cpp:4364 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force" msgstr "Kracht" -#: ../src/widgets/toolbox.cpp:4364 +#: ../src/widgets/toolbox.cpp:4412 msgid "Force:" msgstr "Kracht:" -#: ../src/widgets/toolbox.cpp:4364 +#: ../src/widgets/toolbox.cpp:4412 msgid "The force of the tweak action" msgstr "De kracht van de boetseeracties" -#: ../src/widgets/toolbox.cpp:4382 +#: ../src/widgets/toolbox.cpp:4430 msgid "Move mode" msgstr "Modus verplaatsen" -#: ../src/widgets/toolbox.cpp:4383 +#: ../src/widgets/toolbox.cpp:4431 msgid "Move objects in any direction" msgstr "Objecten in elke richting verplaatsen" -#: ../src/widgets/toolbox.cpp:4389 +#: ../src/widgets/toolbox.cpp:4437 msgid "Move in/out mode" msgstr "Modus naar/van cursor verplaatsen" -#: ../src/widgets/toolbox.cpp:4390 +#: ../src/widgets/toolbox.cpp:4438 msgid "Move objects towards cursor; with Shift from cursor" msgstr "Objecten naar cursor verplaatsen; met Shift van de cursor weg" -#: ../src/widgets/toolbox.cpp:4396 +#: ../src/widgets/toolbox.cpp:4444 msgid "Move jitter mode" msgstr "Modus random verplaatsen" -#: ../src/widgets/toolbox.cpp:4397 +#: ../src/widgets/toolbox.cpp:4445 msgid "Move objects in random directions" msgstr "Objecten in random richting verplaatsen" -#: ../src/widgets/toolbox.cpp:4403 +#: ../src/widgets/toolbox.cpp:4451 msgid "Scale mode" msgstr "Modus schalen" -#: ../src/widgets/toolbox.cpp:4404 +#: ../src/widgets/toolbox.cpp:4452 msgid "Shrink objects, with Shift enlarge" msgstr "Objecten verkleinen, met Shift vergroten" -#: ../src/widgets/toolbox.cpp:4410 +#: ../src/widgets/toolbox.cpp:4458 msgid "Rotate mode" msgstr "Modus roteren" -#: ../src/widgets/toolbox.cpp:4411 +#: ../src/widgets/toolbox.cpp:4459 msgid "Rotate objects, with Shift counterclockwise" msgstr "Objecten roteren, met Shift tegen de richting van de klok in" -#: ../src/widgets/toolbox.cpp:4417 +#: ../src/widgets/toolbox.cpp:4465 msgid "Duplicate/delete mode" msgstr "Modus dupliceren/verwijderen" -#: ../src/widgets/toolbox.cpp:4418 +#: ../src/widgets/toolbox.cpp:4466 msgid "Duplicate objects, with Shift delete" msgstr "Objecten dupliceren, met Shift verwijderen" -#: ../src/widgets/toolbox.cpp:4424 +#: ../src/widgets/toolbox.cpp:4472 msgid "Push mode" msgstr "Modus duwen" -#: ../src/widgets/toolbox.cpp:4425 +#: ../src/widgets/toolbox.cpp:4473 msgid "Push parts of paths in any direction" msgstr "Delen van paden in gewenste richting duwen" -#: ../src/widgets/toolbox.cpp:4431 +#: ../src/widgets/toolbox.cpp:4479 msgid "Shrink/grow mode" msgstr "Modus verdunnen/verdikken" -#: ../src/widgets/toolbox.cpp:4432 +#: ../src/widgets/toolbox.cpp:4480 msgid "Shrink (inset) parts of paths; with Shift grow (outset)" msgstr "Delen van paden verdunnen; met Shift verdikken" -#: ../src/widgets/toolbox.cpp:4438 +#: ../src/widgets/toolbox.cpp:4486 msgid "Attract/repel mode" msgstr "Modus aantrekken/afstoten" -#: ../src/widgets/toolbox.cpp:4439 +#: ../src/widgets/toolbox.cpp:4487 msgid "Attract parts of paths towards cursor; with Shift from cursor" msgstr "Delen van paden naar de cursor toe aantrekken; met Shift om van de cursor af te stoten" -#: ../src/widgets/toolbox.cpp:4445 +#: ../src/widgets/toolbox.cpp:4493 msgid "Roughen mode" msgstr "Verruwingsmodus" -#: ../src/widgets/toolbox.cpp:4446 +#: ../src/widgets/toolbox.cpp:4494 msgid "Roughen parts of paths" msgstr "Delen van paden verruwen" -#: ../src/widgets/toolbox.cpp:4452 +#: ../src/widgets/toolbox.cpp:4500 msgid "Color paint mode" msgstr "Verfmodus" -#: ../src/widgets/toolbox.cpp:4453 +#: ../src/widgets/toolbox.cpp:4501 msgid "Paint the tool's color upon selected objects" msgstr "Gekozen kleur over aangewezen objecten verven" -#: ../src/widgets/toolbox.cpp:4459 +#: ../src/widgets/toolbox.cpp:4507 msgid "Color jitter mode" msgstr "Verkleuringsmodus" -#: ../src/widgets/toolbox.cpp:4460 +#: ../src/widgets/toolbox.cpp:4508 msgid "Jitter the colors of selected objects" msgstr "Kleur van de aangewezen objecten veranderen door slepen" -#: ../src/widgets/toolbox.cpp:4466 +#: ../src/widgets/toolbox.cpp:4514 msgid "Blur mode" msgstr "_Mengmodus:" -#: ../src/widgets/toolbox.cpp:4467 +#: ../src/widgets/toolbox.cpp:4515 msgid "Blur selected objects more; with Shift, blur less" msgstr "Geselecteerde objecten meer vervagen; minder vervagen met Shift" -#: ../src/widgets/toolbox.cpp:4494 +#: ../src/widgets/toolbox.cpp:4542 msgid "Channels:" msgstr "Kanalen:" -#: ../src/widgets/toolbox.cpp:4506 +#: ../src/widgets/toolbox.cpp:4554 msgid "In color mode, act on objects' hue" msgstr "Op de tint van het object inwerken (in verfmodi)" #. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/toolbox.cpp:4510 +#: ../src/widgets/toolbox.cpp:4558 msgid "H" msgstr "T" -#: ../src/widgets/toolbox.cpp:4522 +#: ../src/widgets/toolbox.cpp:4570 msgid "In color mode, act on objects' saturation" msgstr "Op de verzadiging van het object inwerken (in verfmodi)" #. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/toolbox.cpp:4526 +#: ../src/widgets/toolbox.cpp:4574 msgid "S" msgstr "V" -#: ../src/widgets/toolbox.cpp:4538 +#: ../src/widgets/toolbox.cpp:4586 msgid "In color mode, act on objects' lightness" msgstr "Op de lichtheid van het object inwerken (in verfmodi)" #. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/toolbox.cpp:4542 +#: ../src/widgets/toolbox.cpp:4590 msgid "L" msgstr "L" -#: ../src/widgets/toolbox.cpp:4554 +#: ../src/widgets/toolbox.cpp:4602 msgid "In color mode, act on objects' opacity" msgstr "Op de ondoorzichtigheid van het object inwerken (in verfmodi)" #. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/toolbox.cpp:4558 +#: ../src/widgets/toolbox.cpp:4606 msgid "O" msgstr "O" #. Fidelity -#: ../src/widgets/toolbox.cpp:4569 +#: ../src/widgets/toolbox.cpp:4617 msgid "(rough, simplified)" msgstr "(ruw, vereenvoudigd)" -#: ../src/widgets/toolbox.cpp:4569 +#: ../src/widgets/toolbox.cpp:4617 msgid "(fine, but many nodes)" msgstr "(fijn, maar veel knooppunten)" -#: ../src/widgets/toolbox.cpp:4572 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity" msgstr "Kwaliteit" -#: ../src/widgets/toolbox.cpp:4572 +#: ../src/widgets/toolbox.cpp:4620 msgid "Fidelity:" msgstr "Kwaliteit:" -#: ../src/widgets/toolbox.cpp:4573 +#: ../src/widgets/toolbox.cpp:4621 msgid "Low fidelity simplifies paths; high fidelity preserves path features but may generate a lot of new nodes" msgstr "Een lage kwaliteit vereenvoudigt paden; een hoge kwaliteit behoudt de padeigenschappen maar kan een groot aantal nieuwe knooppunten genereren" -#: ../src/widgets/toolbox.cpp:4591 -#: ../src/widgets/toolbox.cpp:4775 -#: ../src/widgets/toolbox.cpp:5310 +#: ../src/widgets/toolbox.cpp:4639 +#: ../src/widgets/toolbox.cpp:4817 +#: ../src/widgets/toolbox.cpp:5352 msgid "Pressure" msgstr "Druk" -#: ../src/widgets/toolbox.cpp:4592 +#: ../src/widgets/toolbox.cpp:4640 msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "De op het invoerapparaat uitgeoefende druk gebruiken om de boetseerkracht te variëren" #. Width -#: ../src/widgets/toolbox.cpp:4664 +#: ../src/widgets/toolbox.cpp:4706 msgid "(narrow spray)" msgstr "(smalle verstuiving)" -#: ../src/widgets/toolbox.cpp:4664 +#: ../src/widgets/toolbox.cpp:4706 msgid "(broad spray)" msgstr "(brede verstuiving)" -#: ../src/widgets/toolbox.cpp:4667 +#: ../src/widgets/toolbox.cpp:4709 msgid "The width of the spray area (relative to the visible canvas area)" msgstr "De breedte van het verstuivingsgebied (relatief ten opzichte van het canvas)" -#: ../src/widgets/toolbox.cpp:4680 +#: ../src/widgets/toolbox.cpp:4722 msgid "(maximum mean)" msgstr "(maximum gemiddelde)" -#: ../src/widgets/toolbox.cpp:4683 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus" msgstr "Focus" -#: ../src/widgets/toolbox.cpp:4683 +#: ../src/widgets/toolbox.cpp:4725 msgid "Focus:" msgstr "Focus:" -#: ../src/widgets/toolbox.cpp:4683 -#, fuzzy +#: ../src/widgets/toolbox.cpp:4725 msgid "0 to spray a spot; increase to enlarge the ring radius" -msgstr "0 voor verstuiving op een punt. Vergroot om de straal te vergroten." +msgstr "0 voor puntverstuiving; verhoog om de straal te vergroten." #. Standard_deviation -#: ../src/widgets/toolbox.cpp:4696 +#: ../src/widgets/toolbox.cpp:4738 msgid "(minimum scatter)" msgstr "(minimum spreiding)" -#: ../src/widgets/toolbox.cpp:4696 +#: ../src/widgets/toolbox.cpp:4738 msgid "(maximum scatter)" msgstr "(maximum spreiding)" -#: ../src/widgets/toolbox.cpp:4699 +#: ../src/widgets/toolbox.cpp:4741 #, fuzzy msgctxt "Spray tool" msgid "Scatter" msgstr "Verspreiden" -#: ../src/widgets/toolbox.cpp:4699 -#, fuzzy +#: ../src/widgets/toolbox.cpp:4741 msgctxt "Spray tool" msgid "Scatter:" -msgstr "Verspreiden" +msgstr "Verspreiding:" -#: ../src/widgets/toolbox.cpp:4699 -#, fuzzy +#: ../src/widgets/toolbox.cpp:4741 msgid "Increase to scatter sprayed objects" -msgstr "Vergroot om verstoven objecten te verspreiden." +msgstr "Verhoog om verstoven objecten te verspreiden" -#: ../src/widgets/toolbox.cpp:4718 +#: ../src/widgets/toolbox.cpp:4760 msgid "Spray copies of the initial selection" msgstr "Kopieën van de initiële selectie verstuiven" -#: ../src/widgets/toolbox.cpp:4725 +#: ../src/widgets/toolbox.cpp:4767 msgid "Spray clones of the initial selection" msgstr "Klonen van de initiële selectie verstuiven" -#: ../src/widgets/toolbox.cpp:4731 +#: ../src/widgets/toolbox.cpp:4773 msgid "Spray single path" -msgstr "In één richting verstuiven" +msgstr "Verstuiven in één richting" -#: ../src/widgets/toolbox.cpp:4732 +#: ../src/widgets/toolbox.cpp:4774 msgid "Spray objects in a single path" msgstr "Objecten in één richting verstuiven" #. Population -#: ../src/widgets/toolbox.cpp:4756 +#: ../src/widgets/toolbox.cpp:4798 msgid "(low population)" msgstr "(klein aantal)" -#: ../src/widgets/toolbox.cpp:4756 +#: ../src/widgets/toolbox.cpp:4798 msgid "(high population)" msgstr "(groot aantal)" -#: ../src/widgets/toolbox.cpp:4759 +#: ../src/widgets/toolbox.cpp:4801 msgid "Amount" msgstr "Hoeveelheid" -#: ../src/widgets/toolbox.cpp:4760 +#: ../src/widgets/toolbox.cpp:4802 #, fuzzy -msgid "Adjusts the number of items sprayed per clic" -msgstr "Het aantal verstoven objecten per klik aanpassen." +msgid "Adjusts the number of items sprayed per click" +msgstr "Het aantal verstoven objecten per klik" -#: ../src/widgets/toolbox.cpp:4776 -#, fuzzy +#: ../src/widgets/toolbox.cpp:4818 msgid "Use the pressure of the input device to alter the amount of sprayed objects" -msgstr "Gebruik de druk op het invoerapparaat om het aantal verstoven objecten aan te passen." +msgstr "De druk op het invoerapparaat gebruiken om het aantal verstoven objecten aan te passen" -#: ../src/widgets/toolbox.cpp:4786 +#: ../src/widgets/toolbox.cpp:4828 msgid "(high rotation variation)" msgstr "(grote variatie draaihoek)" -#: ../src/widgets/toolbox.cpp:4789 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation" msgstr "Draaihoek" -#: ../src/widgets/toolbox.cpp:4789 +#: ../src/widgets/toolbox.cpp:4831 msgid "Rotation:" msgstr "Draaihoek:" -#: ../src/widgets/toolbox.cpp:4791 -#, fuzzy, no-c-format +#: ../src/widgets/toolbox.cpp:4833 +#, no-c-format msgid "Variation of the rotation of the sprayed objects; 0% for the same rotation than the original object" -msgstr "Variatie van de rotatie van de verstoven objecten. 0% voor dezelfde rotatie als het originele object." +msgstr "Variatie van de rotatie van de verstoven objecten; 0% voor dezelfde rotatie als het originele object" -#: ../src/widgets/toolbox.cpp:4804 +#: ../src/widgets/toolbox.cpp:4846 msgid "(high scale variation)" msgstr "(grote variatie schaal)" -#: ../src/widgets/toolbox.cpp:4807 +#: ../src/widgets/toolbox.cpp:4849 #, fuzzy msgctxt "Spray tool" msgid "Scale" -msgstr "Schalen" +msgstr "Schaal" -#: ../src/widgets/toolbox.cpp:4807 -#, fuzzy +#: ../src/widgets/toolbox.cpp:4849 msgctxt "Spray tool" msgid "Scale:" msgstr "Schaal:" -#: ../src/widgets/toolbox.cpp:4809 -#, fuzzy, no-c-format +#: ../src/widgets/toolbox.cpp:4851 +#, no-c-format msgid "Variation in the scale of the sprayed objects; 0% for the same scale than the original object" -msgstr "Variatie van de schaal van de verstoven objecten. 0% voor de schaal van het originele object." +msgstr "Variatie van de schaal van de verstoven objecten; 0% voor de schaal van het originele object" -#: ../src/widgets/toolbox.cpp:4983 +#: ../src/widgets/toolbox.cpp:5025 msgid "No preset" msgstr "Geen voorkeur" -#: ../src/widgets/toolbox.cpp:5001 +#: ../src/widgets/toolbox.cpp:5043 msgid "Save..." msgstr "Opslaan..." #. Width -#: ../src/widgets/toolbox.cpp:5159 -#: ../src/widgets/toolbox.cpp:6221 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:6263 msgid "(hairline)" msgstr "(haarlijn)" -#: ../src/widgets/toolbox.cpp:5159 -#: ../src/widgets/toolbox.cpp:6221 +#: ../src/widgets/toolbox.cpp:5201 +#: ../src/widgets/toolbox.cpp:6263 msgid "(broad stroke)" msgstr "(dikke lijn)" -#: ../src/widgets/toolbox.cpp:5162 -#: ../src/widgets/toolbox.cpp:6224 +#: ../src/widgets/toolbox.cpp:5204 +#: ../src/widgets/toolbox.cpp:6266 msgid "Pen Width" msgstr "Penbreedte" -#: ../src/widgets/toolbox.cpp:5163 +#: ../src/widgets/toolbox.cpp:5205 msgid "The width of the calligraphic pen (relative to the visible canvas area)" msgstr "De breedte van de kalligrafische pen (ten opzichte van het canvas)" #. Thinning -#: ../src/widgets/toolbox.cpp:5176 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed blows up stroke)" msgstr "(snelheid verbreedt de lijn)" -#: ../src/widgets/toolbox.cpp:5176 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight widening)" msgstr "(lichte verbreding)" -#: ../src/widgets/toolbox.cpp:5176 +#: ../src/widgets/toolbox.cpp:5218 msgid "(constant width)" msgstr "(constante breedte)" -#: ../src/widgets/toolbox.cpp:5176 +#: ../src/widgets/toolbox.cpp:5218 msgid "(slight thinning, default)" msgstr "(lichte versmalling, standaard)" -#: ../src/widgets/toolbox.cpp:5176 +#: ../src/widgets/toolbox.cpp:5218 msgid "(speed deflates stroke)" msgstr "(snelheid versmalt de lijn)" -#: ../src/widgets/toolbox.cpp:5179 +#: ../src/widgets/toolbox.cpp:5221 msgid "Stroke Thinning" msgstr "Lijnversmalling" -#: ../src/widgets/toolbox.cpp:5179 +#: ../src/widgets/toolbox.cpp:5221 msgid "Thinning:" msgstr "Versmalling:" -#: ../src/widgets/toolbox.cpp:5180 +#: ../src/widgets/toolbox.cpp:5222 msgid "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 makes them broader, 0 makes width independent of velocity)" msgstr "De invloed van snelheid op de dikte van de lijn (>0 maakte snelle lijnen dunner, <0 maakt ze dikker, 0 maakt de dikte onafhankelijk van de snelheid)" #. Angle -#: ../src/widgets/toolbox.cpp:5192 +#: ../src/widgets/toolbox.cpp:5234 msgid "(left edge up)" msgstr "(rand links omhoog)" -#: ../src/widgets/toolbox.cpp:5192 +#: ../src/widgets/toolbox.cpp:5234 msgid "(horizontal)" msgstr "(horizontaal)" -#: ../src/widgets/toolbox.cpp:5192 +#: ../src/widgets/toolbox.cpp:5234 msgid "(right edge up)" msgstr "(rand rechts omhoog)" -#: ../src/widgets/toolbox.cpp:5195 +#: ../src/widgets/toolbox.cpp:5237 msgid "Pen Angle" msgstr "Pen hoek" -#: ../src/widgets/toolbox.cpp:5196 +#: ../src/widgets/toolbox.cpp:5237 +#: ../share/extensions/motion.inx.h:1 +#: ../share/extensions/restack.inx.h:1 +msgid "Angle:" +msgstr "Hoek:" + +#: ../src/widgets/toolbox.cpp:5238 msgid "The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if fixation = 0)" msgstr "De hoek van de punt van de pen (in graden; 0 = horizontaal. Heeft geen invloed als de fixatie 0 is)." #. Fixation -#: ../src/widgets/toolbox.cpp:5210 +#: ../src/widgets/toolbox.cpp:5252 msgid "(perpendicular to stroke, \"brush\")" msgstr "(loodrecht op lijn, \"penseel\")" -#: ../src/widgets/toolbox.cpp:5210 +#: ../src/widgets/toolbox.cpp:5252 msgid "(almost fixed, default)" msgstr "(bijna vast, standaard)" -#: ../src/widgets/toolbox.cpp:5210 +#: ../src/widgets/toolbox.cpp:5252 msgid "(fixed by Angle, \"pen\")" msgstr "(vaste hoek, \"pen\")" -#: ../src/widgets/toolbox.cpp:5213 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation" msgstr "Fixatie" -#: ../src/widgets/toolbox.cpp:5213 +#: ../src/widgets/toolbox.cpp:5255 msgid "Fixation:" msgstr "Fixatie:" -#: ../src/widgets/toolbox.cpp:5214 +#: ../src/widgets/toolbox.cpp:5256 msgid "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = fixed angle)" msgstr "Hoekgedrag van de pen (0 = altijd loodrecht op de tekenrichting, 100 = vaste hoek)" #. Cap Rounding -#: ../src/widgets/toolbox.cpp:5226 +#: ../src/widgets/toolbox.cpp:5268 msgid "(blunt caps, default)" msgstr "(stomp kapje, standaard)" -#: ../src/widgets/toolbox.cpp:5226 +#: ../src/widgets/toolbox.cpp:5268 msgid "(slightly bulging)" msgstr "(licht uitpuilend)" -#: ../src/widgets/toolbox.cpp:5226 +#: ../src/widgets/toolbox.cpp:5268 msgid "(approximately round)" msgstr "(ongeveer rond)" -#: ../src/widgets/toolbox.cpp:5226 +#: ../src/widgets/toolbox.cpp:5268 msgid "(long protruding caps)" msgstr "(lang uitstekend kapje)" -#: ../src/widgets/toolbox.cpp:5230 +#: ../src/widgets/toolbox.cpp:5272 msgid "Cap rounding" msgstr "Ronding van kapje" -#: ../src/widgets/toolbox.cpp:5230 +#: ../src/widgets/toolbox.cpp:5272 msgid "Caps:" msgstr "Kapje:" -#: ../src/widgets/toolbox.cpp:5231 +#: ../src/widgets/toolbox.cpp:5273 msgid "Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = round caps)" msgstr "Verhoog dit om kapjes aan het einde van lijnen meer uitgesproken te maken (0 = geen kapje, 1 = rond kapje)" #. Tremor -#: ../src/widgets/toolbox.cpp:5243 +#: ../src/widgets/toolbox.cpp:5285 msgid "(smooth line)" msgstr "(afgevlakte lijn)" -#: ../src/widgets/toolbox.cpp:5243 +#: ../src/widgets/toolbox.cpp:5285 msgid "(slight tremor)" msgstr "(lichte beving)" -#: ../src/widgets/toolbox.cpp:5243 +#: ../src/widgets/toolbox.cpp:5285 msgid "(noticeable tremor)" msgstr "(zichtbare beving)" -#: ../src/widgets/toolbox.cpp:5243 +#: ../src/widgets/toolbox.cpp:5285 msgid "(maximum tremor)" msgstr "(maximale beving)" -#: ../src/widgets/toolbox.cpp:5246 +#: ../src/widgets/toolbox.cpp:5288 msgid "Stroke Tremor" msgstr "Lijnbeving" -#: ../src/widgets/toolbox.cpp:5246 +#: ../src/widgets/toolbox.cpp:5288 msgid "Tremor:" msgstr "Beving:" -#: ../src/widgets/toolbox.cpp:5247 +#: ../src/widgets/toolbox.cpp:5289 msgid "Increase to make strokes rugged and trembling" msgstr "Verhoog dit om lijnen ruw en bevend te maken" #. Wiggle -#: ../src/widgets/toolbox.cpp:5261 +#: ../src/widgets/toolbox.cpp:5303 msgid "(no wiggle)" msgstr "(zonder wegglijden)" -#: ../src/widgets/toolbox.cpp:5261 +#: ../src/widgets/toolbox.cpp:5303 msgid "(slight deviation)" msgstr "(lichte uitwijkingen)" -#: ../src/widgets/toolbox.cpp:5261 +#: ../src/widgets/toolbox.cpp:5303 msgid "(wild waves and curls)" msgstr "(wilde golven en krullen)" -#: ../src/widgets/toolbox.cpp:5264 +#: ../src/widgets/toolbox.cpp:5306 msgid "Pen Wiggle" msgstr "Wegglijden van de pen" -#: ../src/widgets/toolbox.cpp:5264 +#: ../src/widgets/toolbox.cpp:5306 msgid "Wiggle:" msgstr "Wegglijden:" -#: ../src/widgets/toolbox.cpp:5265 +#: ../src/widgets/toolbox.cpp:5307 msgid "Increase to make the pen waver and wiggle" msgstr "Verhoog dit om de pen onvast te maken en te laten wegglijden" #. Mass -#: ../src/widgets/toolbox.cpp:5278 +#: ../src/widgets/toolbox.cpp:5320 msgid "(no inertia)" msgstr "(geen traagheid)" -#: ../src/widgets/toolbox.cpp:5278 +#: ../src/widgets/toolbox.cpp:5320 msgid "(slight smoothing, default)" msgstr "(lichte vertraging, standaard)" -#: ../src/widgets/toolbox.cpp:5278 +#: ../src/widgets/toolbox.cpp:5320 msgid "(noticeable lagging)" msgstr "(merkbare vertraging)" -#: ../src/widgets/toolbox.cpp:5278 +#: ../src/widgets/toolbox.cpp:5320 msgid "(maximum inertia)" msgstr "(maximale traagheid)" -#: ../src/widgets/toolbox.cpp:5281 +#: ../src/widgets/toolbox.cpp:5323 msgid "Pen Mass" msgstr "Penmassa" -#: ../src/widgets/toolbox.cpp:5281 +#: ../src/widgets/toolbox.cpp:5323 msgid "Mass:" msgstr "Massa:" -#: ../src/widgets/toolbox.cpp:5282 +#: ../src/widgets/toolbox.cpp:5324 msgid "Increase to make the pen drag behind, as if slowed by inertia" msgstr "Verhoog dit om de pen langzamer te laten reageren, alsof vertraagd door inertie" -#: ../src/widgets/toolbox.cpp:5297 +#: ../src/widgets/toolbox.cpp:5339 msgid "Trace Background" msgstr "Achtergrond volgen" -#: ../src/widgets/toolbox.cpp:5298 +#: ../src/widgets/toolbox.cpp:5340 msgid "Trace the lightness of the background by the width of the pen (white - minimum width, black - maximum width)" msgstr "De lichtheid van de achtergrond bepaalt de breedte van de pen (wit = minimum breedte, zwart = maximum breedte)" -#: ../src/widgets/toolbox.cpp:5311 +#: ../src/widgets/toolbox.cpp:5353 msgid "Use the pressure of the input device to alter the width of the pen" msgstr "De op het invoerapparaat uitgeoefende druk gebruiken om de penbreedte te variëren" -#: ../src/widgets/toolbox.cpp:5323 +#: ../src/widgets/toolbox.cpp:5365 msgid "Tilt" msgstr "Helling" -#: ../src/widgets/toolbox.cpp:5324 +#: ../src/widgets/toolbox.cpp:5366 msgid "Use the tilt of the input device to alter the angle of the pen's nib" msgstr "De helling waaronder het invoerapparaat wordt gehouden, gebruiken om de penhoek te variëren" -#: ../src/widgets/toolbox.cpp:5339 +#: ../src/widgets/toolbox.cpp:5381 msgid "Choose a preset" msgstr "Kies een voorkeur" -#: ../src/widgets/toolbox.cpp:5428 +#: ../src/widgets/toolbox.cpp:5470 msgid "Arc: Change start/end" msgstr "Boog: Begin/einde veranderen" -#: ../src/widgets/toolbox.cpp:5494 +#: ../src/widgets/toolbox.cpp:5536 msgid "Arc: Change open/closed" msgstr "Boog: Open/gesloten veranderen" -#: ../src/widgets/toolbox.cpp:5621 +#: ../src/widgets/toolbox.cpp:5663 msgid "Start:" msgstr "Begin:" -#: ../src/widgets/toolbox.cpp:5622 +#: ../src/widgets/toolbox.cpp:5664 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "De hoek (in graden) tussen een horizontale lijn en het begin van de boog" -#: ../src/widgets/toolbox.cpp:5634 +#: ../src/widgets/toolbox.cpp:5676 msgid "End:" msgstr "Einde:" -#: ../src/widgets/toolbox.cpp:5635 +#: ../src/widgets/toolbox.cpp:5677 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "De hoek (in graden) tussen een horizontale lijn en het einde van de boog" -#: ../src/widgets/toolbox.cpp:5651 +#: ../src/widgets/toolbox.cpp:5693 msgid "Closed arc" msgstr "Gesloten boog" -#: ../src/widgets/toolbox.cpp:5652 +#: ../src/widgets/toolbox.cpp:5694 msgid "Switch to segment (closed shape with two radii)" msgstr "Omschakelen naar segment (gesloten vorm met twee stralen)" -#: ../src/widgets/toolbox.cpp:5658 +#: ../src/widgets/toolbox.cpp:5700 msgid "Open Arc" msgstr "Open boog" -#: ../src/widgets/toolbox.cpp:5659 +#: ../src/widgets/toolbox.cpp:5701 msgid "Switch to arc (unclosed shape)" msgstr "Omschakelen naar boog (open vorm)" -#: ../src/widgets/toolbox.cpp:5682 +#: ../src/widgets/toolbox.cpp:5724 msgid "Make whole" msgstr "Ellips herstellen" -#: ../src/widgets/toolbox.cpp:5683 +#: ../src/widgets/toolbox.cpp:5725 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Van de figuur een hele ellips maken, geen boog of segment" -#: ../src/widgets/toolbox.cpp:5761 +#: ../src/widgets/toolbox.cpp:5803 msgid "Pick opacity" msgstr "Kies ondoorzichtigheid" -#: ../src/widgets/toolbox.cpp:5762 +#: ../src/widgets/toolbox.cpp:5804 msgid "Pick both the color and the alpha (transparency) under cursor; otherwise, pick only the visible color premultiplied by alpha" msgstr "Zowel kleur als alfa (transparantie) onder de cursor nemen; zoniet, alleen de zichtbare kleur voorvermenigvuldigd met alfa nemen" -#: ../src/widgets/toolbox.cpp:5765 +#: ../src/widgets/toolbox.cpp:5807 msgid "Pick" msgstr "Kiezen" -#: ../src/widgets/toolbox.cpp:5774 +#: ../src/widgets/toolbox.cpp:5816 msgid "Assign opacity" msgstr "Ondoorzichtigheid wijzigen" -#: ../src/widgets/toolbox.cpp:5775 +#: ../src/widgets/toolbox.cpp:5817 msgid "If alpha was picked, assign it to selection as fill or stroke transparency" msgstr "Als alfa gekozen is, deze op de selectie toepassen als transparantie van vulling of omlijning" -#: ../src/widgets/toolbox.cpp:5778 +#: ../src/widgets/toolbox.cpp:5820 msgid "Assign" msgstr "Toekennen" -#: ../src/widgets/toolbox.cpp:5963 +#: ../src/widgets/toolbox.cpp:6005 msgid "Closed" msgstr "Gesloten" -#: ../src/widgets/toolbox.cpp:5965 +#: ../src/widgets/toolbox.cpp:6007 msgid "Open start" msgstr "Open begin" -#: ../src/widgets/toolbox.cpp:5967 +#: ../src/widgets/toolbox.cpp:6009 msgid "Open end" msgstr "Open einde" -#: ../src/widgets/toolbox.cpp:5969 +#: ../src/widgets/toolbox.cpp:6011 msgid "Open both" msgstr "Beide open" -#: ../src/widgets/toolbox.cpp:6028 +#: ../src/widgets/toolbox.cpp:6070 msgid "All inactive" msgstr "Allemaal inactief" -#: ../src/widgets/toolbox.cpp:6029 +#: ../src/widgets/toolbox.cpp:6071 msgid "No geometric tool is active" msgstr "Geen enkel geometrisch gereedschap is actief" -#: ../src/widgets/toolbox.cpp:6062 +#: ../src/widgets/toolbox.cpp:6104 msgid "Show limiting bounding box" msgstr "Het beperkend omvattend vak tonen" -#: ../src/widgets/toolbox.cpp:6063 +#: ../src/widgets/toolbox.cpp:6105 msgid "Show bounding box (used to cut infinite lines)" msgstr "Het omvattend vak tonen (om oneindige lijnen af te snijden)" -#: ../src/widgets/toolbox.cpp:6074 +#: ../src/widgets/toolbox.cpp:6116 msgid "Get limiting bounding box from selection" msgstr "Het beperkend omvattend vak verkrijgen van selectie" -#: ../src/widgets/toolbox.cpp:6075 +#: ../src/widgets/toolbox.cpp:6117 msgid "Set limiting bounding box (used to cut infinite lines) to the bounding box of current selection" msgstr "Het beperkend omvattend vak (om oneindige lijnen af te snijden) instellen op het omvattend vak van de huidige selectie" -#: ../src/widgets/toolbox.cpp:6087 +#: ../src/widgets/toolbox.cpp:6129 msgid "Choose a line segment type" msgstr "Segmenttype veranderen" -#: ../src/widgets/toolbox.cpp:6103 +#: ../src/widgets/toolbox.cpp:6145 msgid "Display measuring info" msgstr "Meetinfo weergeven" -#: ../src/widgets/toolbox.cpp:6104 +#: ../src/widgets/toolbox.cpp:6146 msgid "Display measuring info for selected items" msgstr "Meetinfo weergeven voor geselecteerde items" -#: ../src/widgets/toolbox.cpp:6124 +#: ../src/widgets/toolbox.cpp:6166 msgid "Open LPE dialog" msgstr "Padeffectenvenster openen" -#: ../src/widgets/toolbox.cpp:6125 +#: ../src/widgets/toolbox.cpp:6167 msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "Padeffectenvenster openen (om parameters numeriek aan te passen)" -#: ../src/widgets/toolbox.cpp:6190 +#: ../src/widgets/toolbox.cpp:6232 msgid "Delete objects touched by the eraser" msgstr "Objecten aangeraakt met de gom verwijderen" -#: ../src/widgets/toolbox.cpp:6196 +#: ../src/widgets/toolbox.cpp:6238 msgid "Cut" msgstr "Knippen" -#: ../src/widgets/toolbox.cpp:6197 +#: ../src/widgets/toolbox.cpp:6239 msgid "Cut out from objects" msgstr "Van objecten uitsnijden" -#: ../src/widgets/toolbox.cpp:6225 +#: ../src/widgets/toolbox.cpp:6267 msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "De breedte van de gom (relatief ten opzichte van het zichtbare canvasoppervlak)" -#: ../src/widgets/toolbox.cpp:6465 +#: ../src/widgets/toolbox.cpp:6507 msgid "Text: Change font family" msgstr "Tekst: lettertypefamilie veranderen" -#: ../src/widgets/toolbox.cpp:6522 +#: ../src/widgets/toolbox.cpp:6564 msgid "Text: Change font size" msgstr "Tekst: lettertypegrootte veranderen" -#: ../src/widgets/toolbox.cpp:6661 +#: ../src/widgets/toolbox.cpp:6703 msgid "Text: Change font style" msgstr "Tekst: lettertypestijl veranderen" -#: ../src/widgets/toolbox.cpp:6740 +#: ../src/widgets/toolbox.cpp:6782 msgid "Text: Change superscript or subscript" msgstr "Tekst: superscript en subscript veranderen" -#: ../src/widgets/toolbox.cpp:6886 +#: ../src/widgets/toolbox.cpp:6928 msgid "Text: Change alignment" msgstr "Tekst: uitlijning veranderen" -#: ../src/widgets/toolbox.cpp:6929 +#: ../src/widgets/toolbox.cpp:6971 msgid "Text: Change line-height" msgstr "Tekst: lijnhoogte veranderen" -#: ../src/widgets/toolbox.cpp:6978 +#: ../src/widgets/toolbox.cpp:7020 msgid "Text: Change word-spacing" msgstr "Tekst: woordafstand veranderen" -#: ../src/widgets/toolbox.cpp:7020 +#: ../src/widgets/toolbox.cpp:7062 msgid "Text: Change letter-spacing" msgstr "Tekst: letterafstand veranderen" -#: ../src/widgets/toolbox.cpp:7061 +#: ../src/widgets/toolbox.cpp:7103 msgid "Text: Change dx (kern)" msgstr "Tekst: dx veranderen (kerning)" -#: ../src/widgets/toolbox.cpp:7095 +#: ../src/widgets/toolbox.cpp:7137 msgid "Text: Change dy" msgstr "Tekst: dy veranderen" -#: ../src/widgets/toolbox.cpp:7130 +#: ../src/widgets/toolbox.cpp:7172 msgid "Text: Change rotate" msgstr "Tekst: draaiing veranderen" -#: ../src/widgets/toolbox.cpp:7178 +#: ../src/widgets/toolbox.cpp:7220 msgid "Text: Change orientation" msgstr "Tekst: oriëntatie veranderen" -#: ../src/widgets/toolbox.cpp:7543 +#: ../src/widgets/toolbox.cpp:7585 msgid "Font Family" msgstr "Lettertypefamilie" -#: ../src/widgets/toolbox.cpp:7544 +#: ../src/widgets/toolbox.cpp:7586 msgid "Select Font Family (Alt-X to access)" msgstr "Selecteer lettertypefamilie (Alt+X voor dialoog)" @@ -23167,358 +23352,358 @@ msgstr "Selecteer lettertypefamilie (Alt+X voor dialoog)" #. Extra list width #. Cell layout #. Enable entry completion -#: ../src/widgets/toolbox.cpp:7551 +#: ../src/widgets/toolbox.cpp:7593 msgid "Font not found on system" msgstr "Lettertype niet aanwezig op systeem" -#: ../src/widgets/toolbox.cpp:7584 +#: ../src/widgets/toolbox.cpp:7626 msgid "Font size (px)" msgstr "Lettertypegrootte (px)" #. Name -#: ../src/widgets/toolbox.cpp:7596 +#: ../src/widgets/toolbox.cpp:7638 msgid "Toggle Bold" msgstr "Status vet veranderen" #. Label -#: ../src/widgets/toolbox.cpp:7597 +#: ../src/widgets/toolbox.cpp:7639 msgid "Toggle bold or normal weight" msgstr "Vet" #. Name -#: ../src/widgets/toolbox.cpp:7609 +#: ../src/widgets/toolbox.cpp:7651 msgid "Toggle Italic/Oblique" msgstr "Cursief" #. Label -#: ../src/widgets/toolbox.cpp:7610 +#: ../src/widgets/toolbox.cpp:7652 msgid "Toggle italic/oblique style" msgstr "Cursief" #. Name -#: ../src/widgets/toolbox.cpp:7622 +#: ../src/widgets/toolbox.cpp:7664 msgid "Toggle Superscript" msgstr "Superscript" #. Label -#: ../src/widgets/toolbox.cpp:7623 +#: ../src/widgets/toolbox.cpp:7665 msgid "Toggle superscript" msgstr "Superscript" #. Name -#: ../src/widgets/toolbox.cpp:7635 +#: ../src/widgets/toolbox.cpp:7677 msgid "Toggle Subscript" msgstr "Subscript" #. Label -#: ../src/widgets/toolbox.cpp:7636 +#: ../src/widgets/toolbox.cpp:7678 msgid "Toggle subscript" msgstr "Subscript" -#: ../src/widgets/toolbox.cpp:7653 -#: ../src/widgets/toolbox.cpp:7654 +#: ../src/widgets/toolbox.cpp:7695 +#: ../src/widgets/toolbox.cpp:7696 msgid "Align left" msgstr "Links uitlijnen" -#: ../src/widgets/toolbox.cpp:7661 -#: ../src/widgets/toolbox.cpp:7662 +#: ../src/widgets/toolbox.cpp:7703 +#: ../src/widgets/toolbox.cpp:7704 msgid "Align center" msgstr "Centreren" -#: ../src/widgets/toolbox.cpp:7669 -#: ../src/widgets/toolbox.cpp:7670 +#: ../src/widgets/toolbox.cpp:7711 +#: ../src/widgets/toolbox.cpp:7712 msgid "Align right" msgstr "Rechts uitlijnen" -#: ../src/widgets/toolbox.cpp:7677 +#: ../src/widgets/toolbox.cpp:7719 msgid "Justify" msgstr "Uitgevuld" -#: ../src/widgets/toolbox.cpp:7678 +#: ../src/widgets/toolbox.cpp:7720 msgid "Justify (only flowed text)" msgstr "Uitvullen (enkel ingekaderde tekst)" #. Name -#: ../src/widgets/toolbox.cpp:7684 +#: ../src/widgets/toolbox.cpp:7726 msgid "Alignment" msgstr "Uitlijning" #. Label -#: ../src/widgets/toolbox.cpp:7685 +#: ../src/widgets/toolbox.cpp:7727 msgid "Text alignment" msgstr "Tekstuitlijning" -#: ../src/widgets/toolbox.cpp:7712 +#: ../src/widgets/toolbox.cpp:7754 msgid "Horizontal" msgstr "Horizontaal" -#: ../src/widgets/toolbox.cpp:7719 +#: ../src/widgets/toolbox.cpp:7761 msgid "Vertical" msgstr "Verticaal" #. Label -#: ../src/widgets/toolbox.cpp:7726 +#: ../src/widgets/toolbox.cpp:7768 msgid "Text orientation" msgstr "Tekstoriëntatie" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7749 +#: ../src/widgets/toolbox.cpp:7791 msgid "Smaller spacing" msgstr "Kleinere afstand" -#: ../src/widgets/toolbox.cpp:7749 -#: ../src/widgets/toolbox.cpp:7780 -#: ../src/widgets/toolbox.cpp:7811 +#: ../src/widgets/toolbox.cpp:7791 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgctxt "Text tool" msgid "Normal" msgstr "Normal" -#: ../src/widgets/toolbox.cpp:7749 +#: ../src/widgets/toolbox.cpp:7791 msgid "Larger spacing" msgstr "Grotere afstand" #. name -#: ../src/widgets/toolbox.cpp:7754 +#: ../src/widgets/toolbox.cpp:7796 msgid "Line Height" msgstr "Lijnhoogte" #. label -#: ../src/widgets/toolbox.cpp:7755 +#: ../src/widgets/toolbox.cpp:7797 msgid "Line:" msgstr "Lijn:" #. short label -#: ../src/widgets/toolbox.cpp:7756 +#: ../src/widgets/toolbox.cpp:7798 msgid "Spacing between lines (times font size)" msgstr "Ruimte tussen lijnen (maal lettertypegrootte)" #. Drop down menu -#: ../src/widgets/toolbox.cpp:7780 -#: ../src/widgets/toolbox.cpp:7811 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgid "Negative spacing" msgstr "Negatieve afstand" -#: ../src/widgets/toolbox.cpp:7780 -#: ../src/widgets/toolbox.cpp:7811 +#: ../src/widgets/toolbox.cpp:7822 +#: ../src/widgets/toolbox.cpp:7853 msgid "Positive spacing" msgstr "Positieve afstand" #. name -#: ../src/widgets/toolbox.cpp:7785 +#: ../src/widgets/toolbox.cpp:7827 msgid "Word spacing" msgstr "Woordafstand" #. label -#: ../src/widgets/toolbox.cpp:7786 +#: ../src/widgets/toolbox.cpp:7828 msgid "Word:" msgstr "Woord:" #. short label -#: ../src/widgets/toolbox.cpp:7787 +#: ../src/widgets/toolbox.cpp:7829 msgid "Spacing between words (px)" msgstr "Ruimte tussen woorden (px)" #. name -#: ../src/widgets/toolbox.cpp:7816 +#: ../src/widgets/toolbox.cpp:7858 msgid "Letter spacing" msgstr "Letterafstand" #. label -#: ../src/widgets/toolbox.cpp:7817 +#: ../src/widgets/toolbox.cpp:7859 msgid "Letter:" msgstr "Letter:" #. short label -#: ../src/widgets/toolbox.cpp:7818 +#: ../src/widgets/toolbox.cpp:7860 msgid "Spacing between letters (px)" msgstr "Ruimte tussen letters (px)" #. name -#: ../src/widgets/toolbox.cpp:7847 +#: ../src/widgets/toolbox.cpp:7889 msgid "Kerning" msgstr "Overhang" #. label -#: ../src/widgets/toolbox.cpp:7848 +#: ../src/widgets/toolbox.cpp:7890 msgid "Kern:" msgstr "Overhang:" #. short label -#: ../src/widgets/toolbox.cpp:7849 +#: ../src/widgets/toolbox.cpp:7891 msgid "Horizontal kerning (px)" msgstr "Horizontale overhang (px)" #. name -#: ../src/widgets/toolbox.cpp:7878 +#: ../src/widgets/toolbox.cpp:7920 msgid "Vertical Shift" msgstr "Verticale verplaatsing" #. label -#: ../src/widgets/toolbox.cpp:7879 +#: ../src/widgets/toolbox.cpp:7921 msgid "Vert:" msgstr "Vert:" #. short label -#: ../src/widgets/toolbox.cpp:7880 +#: ../src/widgets/toolbox.cpp:7922 msgid "Vertical shift (px)" msgstr "Verticale verplaatsing (px)" #. name -#: ../src/widgets/toolbox.cpp:7909 +#: ../src/widgets/toolbox.cpp:7951 msgid "Letter rotation" msgstr "Letterrotatie" #. label -#: ../src/widgets/toolbox.cpp:7910 +#: ../src/widgets/toolbox.cpp:7952 msgid "Rot:" msgstr "Rot:" #. short label -#: ../src/widgets/toolbox.cpp:7911 +#: ../src/widgets/toolbox.cpp:7953 msgid "Character rotation (degrees)" msgstr "Karakterrotatie (graden)" -#: ../src/widgets/toolbox.cpp:8026 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: orthogonal" msgstr "Type verbinding instellen: orthogonaal" -#: ../src/widgets/toolbox.cpp:8026 +#: ../src/widgets/toolbox.cpp:8068 msgid "Set connector type: polyline" msgstr "Type verbinding instellen: veellijn" -#: ../src/widgets/toolbox.cpp:8075 +#: ../src/widgets/toolbox.cpp:8117 msgid "Change connector curvature" msgstr "Kromming verbinding aanpassen" -#: ../src/widgets/toolbox.cpp:8126 +#: ../src/widgets/toolbox.cpp:8168 msgid "Change connector spacing" msgstr "Verbindingsafstanden aanpassen" -#: ../src/widgets/toolbox.cpp:8240 +#: ../src/widgets/toolbox.cpp:8282 msgid "EditMode" msgstr "Bewerkmodus" -#: ../src/widgets/toolbox.cpp:8241 +#: ../src/widgets/toolbox.cpp:8283 msgid "Switch between connection point editing and connector drawing mode" msgstr "Wisselen tussen bewerkmodus voor verbindingspunten en tekenmodus voor verbindingen" -#: ../src/widgets/toolbox.cpp:8255 +#: ../src/widgets/toolbox.cpp:8297 msgid "Avoid" msgstr "Vermijden" -#: ../src/widgets/toolbox.cpp:8265 +#: ../src/widgets/toolbox.cpp:8307 msgid "Ignore" msgstr "Negeren" -#: ../src/widgets/toolbox.cpp:8276 +#: ../src/widgets/toolbox.cpp:8318 msgid "Orthogonal" msgstr "Orthogonaal" -#: ../src/widgets/toolbox.cpp:8277 +#: ../src/widgets/toolbox.cpp:8319 msgid "Make connector orthogonal or polyline" msgstr "Verbinding orthogonaal of veellijn maken" -#: ../src/widgets/toolbox.cpp:8291 +#: ../src/widgets/toolbox.cpp:8333 msgid "Connector Curvature" msgstr "Kromming verbinding" -#: ../src/widgets/toolbox.cpp:8291 +#: ../src/widgets/toolbox.cpp:8333 msgid "Curvature:" msgstr "Kromming:" -#: ../src/widgets/toolbox.cpp:8292 +#: ../src/widgets/toolbox.cpp:8334 msgid "The amount of connectors curvature" msgstr "Hoeveelheid kromming van verbindingen" -#: ../src/widgets/toolbox.cpp:8302 +#: ../src/widgets/toolbox.cpp:8344 msgid "Connector Spacing" msgstr "Verbindingsafstanden" -#: ../src/widgets/toolbox.cpp:8302 +#: ../src/widgets/toolbox.cpp:8344 msgid "Spacing:" msgstr "Afstand:" -#: ../src/widgets/toolbox.cpp:8303 +#: ../src/widgets/toolbox.cpp:8345 msgid "The amount of space left around objects by auto-routing connectors" msgstr "De vrij te laten ruimte rond objecten bij het automatisch routeren van verbindingen" -#: ../src/widgets/toolbox.cpp:8314 +#: ../src/widgets/toolbox.cpp:8356 msgid "Graph" msgstr "Diagram" -#: ../src/widgets/toolbox.cpp:8324 +#: ../src/widgets/toolbox.cpp:8366 msgid "Connector Length" msgstr "Verbindingslengte" -#: ../src/widgets/toolbox.cpp:8325 +#: ../src/widgets/toolbox.cpp:8367 msgid "Ideal length for connectors when layout is applied" msgstr "Ideale lengte van verbindingen bij herschikken" -#: ../src/widgets/toolbox.cpp:8337 +#: ../src/widgets/toolbox.cpp:8379 msgid "Downwards" msgstr "Omlaag" -#: ../src/widgets/toolbox.cpp:8338 +#: ../src/widgets/toolbox.cpp:8380 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "Eindmarkeringen (pijlen) van verbindingen wijzen omlaag" -#: ../src/widgets/toolbox.cpp:8354 +#: ../src/widgets/toolbox.cpp:8396 msgid "Do not allow overlapping shapes" msgstr "Geen overlappende vormen toestaan" -#: ../src/widgets/toolbox.cpp:8369 +#: ../src/widgets/toolbox.cpp:8411 msgid "New connection point" msgstr "Nieuw verbindingspunt" -#: ../src/widgets/toolbox.cpp:8370 +#: ../src/widgets/toolbox.cpp:8412 msgid "Add a new connection point to the currently selected item" msgstr "Een nieuw verbindingspunt naar het geselecteerde item toevoegen" -#: ../src/widgets/toolbox.cpp:8381 +#: ../src/widgets/toolbox.cpp:8423 msgid "Remove connection point" msgstr "Verbindingspunt verwijderen" -#: ../src/widgets/toolbox.cpp:8382 +#: ../src/widgets/toolbox.cpp:8424 msgid "Remove the currently selected connection point" msgstr "Het geselecteerde verbindingspunt verwijderen" -#: ../src/widgets/toolbox.cpp:8484 +#: ../src/widgets/toolbox.cpp:8526 msgid "Fill by" msgstr "Vullen met" -#: ../src/widgets/toolbox.cpp:8485 +#: ../src/widgets/toolbox.cpp:8527 msgid "Fill by:" msgstr "Vullen met:" -#: ../src/widgets/toolbox.cpp:8497 +#: ../src/widgets/toolbox.cpp:8539 msgid "Fill Threshold" msgstr "Vullingsdrempel" -#: ../src/widgets/toolbox.cpp:8498 +#: ../src/widgets/toolbox.cpp:8540 msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill" msgstr "Het maximaal toegestane verschil tussen de aangeklikte pixel en de naastliggende pixels geteld in de vulling" -#: ../src/widgets/toolbox.cpp:8524 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by" msgstr "Verdikken/verdunnen met" -#: ../src/widgets/toolbox.cpp:8524 +#: ../src/widgets/toolbox.cpp:8566 msgid "Grow/shrink by:" msgstr "Verdikken/verdunnen met:" -#: ../src/widgets/toolbox.cpp:8525 +#: ../src/widgets/toolbox.cpp:8567 msgid "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "De hoeveelheid waarmee het vullingspad verdikt (positief) of verdund (negatief) moet worden" -#: ../src/widgets/toolbox.cpp:8550 +#: ../src/widgets/toolbox.cpp:8592 msgid "Close gaps" msgstr "Gaten opvullen" -#: ../src/widgets/toolbox.cpp:8551 +#: ../src/widgets/toolbox.cpp:8593 msgid "Close gaps:" msgstr "Gaten opvullen:" -#: ../src/widgets/toolbox.cpp:8563 +#: ../src/widgets/toolbox.cpp:8605 msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "Herinitialiseer afgebakende gebieden vullen naar standaardwaarden (gebruik Inkscape-voorkeuren > Gereedschappen om de standaardwaarden te veranderen)" @@ -23839,10 +24024,6 @@ msgstr "Y-afstand:" msgid "Dot size:" msgstr "Puntgrootte:" -#: ../share/extensions/dots.inx.h:2 -msgid "Font size:" -msgstr "Lettergrootte:" - #: ../share/extensions/dots.inx.h:4 msgid "Number Nodes" msgstr "Knooppunten nummeren" @@ -24084,7 +24265,7 @@ msgstr "DXF-invoer" #: ../share/extensions/dxf_input.inx.h:10 msgid "Gcodetools compatible point import" -msgstr "Gcodetools compatibele import punten" +msgstr "Gcodetools compatibele importpunten" #: ../share/extensions/dxf_input.inx.h:12 msgid "Import AutoCAD's Document Exchange Format" @@ -24092,11 +24273,11 @@ msgstr "AutoCAD's Document Exchange Format importeren" #: ../share/extensions/dxf_input.inx.h:13 msgid "Manual x-axis origin (mm)" -msgstr "" +msgstr "Handmatige oorsprong x-as (mm)" #: ../share/extensions/dxf_input.inx.h:14 msgid "Manual y-axis origin (mm)" -msgstr "" +msgstr "Handmatige oorsprong y-as (mm)" #: ../share/extensions/dxf_input.inx.h:16 msgid "Or, use manual scale factor" @@ -24108,7 +24289,7 @@ msgstr "Lettertype tekst" #: ../share/extensions/dxf_input.inx.h:18 msgid "Use automatic scaling to size A4" -msgstr "Automatisch schalen tot A4-grootte toepassen" +msgstr "Automatisch schalen tot A4-grootte" #: ../share/extensions/dxf_outlines.inx.h:1 msgid "" @@ -24441,430 +24622,645 @@ msgstr "Aantal tanden:" msgid "Pressure angle (degrees):" msgstr "Drukhoek (graden):" -#: ../share/extensions/gcodetools_all_in_one.inx.h:1 -#: ../share/extensions/gcodetools_area.inx.h:1 -msgid "\"Create area offset\": creates several Inkscape path offsets to fill original path's area up to \"Area radius\" value. Outlines start from \"1/2 D\" up to \"Area width\" total width with \"D\" steps where D is taken from the nearest tool definition (\"Tool diameter\" value). Only one offset will be created if the \"Area width\" is equal to \"1/2 D\"." -msgstr "\"Oppervlak offset maken\": maakt verschillende Inkscape-offsetpaden aan om de originele padoppervlakte te vullen tot de \"Contourbreedte\". Contouren beginnen van \"1/2 D\" tot de \"Contourbreedte\" met \"D\" stappen, waarbij D afkomstig is van de gereedschapsdefinitie (\"Diameter gereedschap\"). Slechts één offset wordt gemaakt indien de \"Contourbreedte\" gelijk is aan \"1/2 D\"." +#: ../share/extensions/gcodetools_about.inx.h:1 +#, fuzzy +msgid "About" +msgstr "Hoeveelheid" -#: ../share/extensions/gcodetools_all_in_one.inx.h:2 -#: ../share/extensions/gcodetools_orientation_points.inx.h:1 -msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" -msgstr "2-punts modus (verplaatsen en roteren, X/Y aspectratio behouden)" +#: ../share/extensions/gcodetools_about.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Gcodetools" +msgstr "Gcodetools" -#: ../share/extensions/gcodetools_all_in_one.inx.h:3 -#: ../share/extensions/gcodetools_orientation_points.inx.h:2 -msgid "3-points mode (move, rotate and mirror, different X/Y scale)" -msgstr "3-punts modus (verplaatsen, roteren en spiegelen, X/Y aspectratio verschillend)" +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +#: ../share/extensions/gcodetools_tools_library.inx.h:2 +#, fuzzy +msgid "Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. Tutorials, manuals and support can be found at English support forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +msgstr "Gcodetools uitbreiding: converteert paden in Gcode (met behulp van cirkelinterpolatie), maakt offsetpaden en graveert scherpe hoeken met conische snijmessen. Deze plugin berekent Gcode voor paden met behulp van cirkelinterpolatie of lineare verplaatsing. Tutorials, handleidingen en ondersteuning zijn beschikbaar op het Engelstalige forum: http://www.cnc-club.ru/gcodetools en op het Russische forum http://www.cnc-club.ru/gcodetoolsru. Auteurs: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas. Gcodetools ver. 1.6.01" + +#: ../share/extensions/gcodetools_about.inx.h:4 +msgid "Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program. It can be use with a lot of machone types: Mills Lathes Laser and Palsma cutters and engravers Mill engravers Plotters etc. To get more info visit developers page at http://www.cnc-club.ru/gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:1 +msgid "\"Create area offset\": creates several Inkscape path offsets to fill original path's area up to \"Area radius\" value. Outlines start from \"1/2 D\" up to \"Area width\" total width with \"D\" steps where D is taken from the nearest tool definition (\"Tool diameter\" value). Only one offset will be created if the \"Area width\" is equal to \"1/2 D\"." +msgstr "\"Oppervlak offset maken\": maakt verschillende Inkscape-offsetpaden aan om de originele padoppervlakte te vullen tot de \"Contourbreedte\". Contouren beginnen van \"1/2 D\" tot de \"Contourbreedte\" met \"D\" stappen, waarbij D afkomstig is van de gereedschapsdefinitie (\"Diameter gereedschap\"). Slechts één offset wordt gemaakt indien de \"Contourbreedte\" gelijk is aan \"1/2 D\"." -#: ../share/extensions/gcodetools_all_in_one.inx.h:4 #: ../share/extensions/gcodetools_area.inx.h:2 msgid "Action:" msgstr "Actie:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:5 #: ../share/extensions/gcodetools_area.inx.h:3 #: ../share/extensions/gcodetools_dxf_points.inx.h:1 -#: ../share/extensions/gcodetools_engraving.inx.h:1 +#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_graffiti.inx.h:3 #: ../share/extensions/gcodetools_lathe.inx.h:1 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 msgid "Add numeric suffix to filename" msgstr "Numeriek achtervoegsel aan bestandsnaam toevoegen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:6 #: ../share/extensions/gcodetools_area.inx.h:4 #: ../share/extensions/gcodetools_dxf_points.inx.h:2 -#: ../share/extensions/gcodetools_engraving.inx.h:2 +#: ../share/extensions/gcodetools_engraving.inx.h:3 +#: ../share/extensions/gcodetools_graffiti.inx.h:4 #: ../share/extensions/gcodetools_lathe.inx.h:2 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 msgid "Additional post-processor:" msgstr "Additionele post-processor:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:7 -msgid "All in one" -msgstr "Alles in één" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:8 #: ../share/extensions/gcodetools_area.inx.h:5 msgid "Area" msgstr "Oppervlakte" -#: ../share/extensions/gcodetools_all_in_one.inx.h:9 #: ../share/extensions/gcodetools_area.inx.h:6 -msgid "Area artefacts" +#, fuzzy +msgid "Area artifacts" msgstr "Oppervlakartefacten" -#: ../share/extensions/gcodetools_all_in_one.inx.h:10 #: ../share/extensions/gcodetools_area.inx.h:7 +msgid "Area fill anlge" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:8 +msgid "Area fill shift" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:9 +msgid "Area tool overlap (0..0.9):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:10 msgid "Area width:" msgstr "Contourbreedte:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:11 -#: ../share/extensions/gcodetools_area.inx.h:8 -msgid "Artefact diameter:" +#: ../share/extensions/gcodetools_area.inx.h:11 +#, fuzzy +msgid "Artifact diameter:" msgstr "Artefactdiameter:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:12 -#: ../share/extensions/gcodetools_area.inx.h:9 +#: ../share/extensions/gcodetools_area.inx.h:12 #: ../share/extensions/gcodetools_lathe.inx.h:3 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 -msgid "Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and it's approximation exceeds biarc interpolation tolerance." +#, fuzzy +msgid "Biarc interpolation tolerance is the maximum distance between path and its approximation. The segment will be split into two segments if the distance between path's segment and its approximation exceeds biarc interpolation tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 (black), d is the depth defined by orientation points, s - surface defined by orientation points." msgstr "Bicirkelinterpolatietolerantie is de maximum afstand tussen het pad en zijn benadering. Het segment zal opgesplitst worden in twee segmenten indien de afstand tussen het segment en zijn benadering de bicirkelinterpolatietolerantie overschrijdt." -#: ../share/extensions/gcodetools_all_in_one.inx.h:13 -#: ../share/extensions/gcodetools_area.inx.h:10 +#: ../share/extensions/gcodetools_area.inx.h:13 #: ../share/extensions/gcodetools_lathe.inx.h:4 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 msgid "Biarc interpolation tolerance:" msgstr "Bicirkelinterpolatietolerantie" -#: ../share/extensions/gcodetools_all_in_one.inx.h:14 +#: ../share/extensions/gcodetools_area.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:4 +#: ../share/extensions/gcodetools_graffiti.inx.h:5 +#: ../share/extensions/gcodetools_lathe.inx.h:5 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 +msgid "Comment Gcode:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:7 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +#, fuzzy +msgid "Cutting order" +msgstr "Spitse rand" + +#: ../share/extensions/gcodetools_area.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:8 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +#, fuzzy +msgid "Depth function:" +msgstr "Roodfunctie:" + +#: ../share/extensions/gcodetools_area.inx.h:17 +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_engraving.inx.h:5 +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +#: ../share/extensions/gcodetools_lathe.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 +msgid "Directory:" +msgstr "Directorie:" + +#: ../share/extensions/gcodetools_area.inx.h:18 +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_lathe.inx.h:10 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Fast pre-penetrate" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_lathe.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "File:" +msgstr "Bestand:" + +#: ../share/extensions/gcodetools_area.inx.h:20 +#, fuzzy +msgid "Fill area" +msgstr "Afgebakend gebied vullen" + +#: ../share/extensions/gcodetools_area.inx.h:21 +#, fuzzy +msgid "Filling method" +msgstr "Verdeelmethode:" + +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +msgid "Flip y axis and parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +msgid "Full path to log file:" +msgstr "Volledig pad naar logbestand:" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +msgid "Generate log file" +msgstr "Logbestand genereren" + +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Get additional comments from object's properties" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:29 +msgid "Maximum area cutting curves:" +msgstr "Maximum aantal snijcurves:" + +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +msgid "Maximum splitting depth:" +msgstr "Maximum aantal opdelingen:" + +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +msgid "Minimum arc radius:" +msgstr "Minimum straal boog:" + +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +msgid "Offset along Z axis:" +msgstr "Offset langs Z-as:" + +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +#, fuzzy +msgid "Parameterize Gcode" +msgstr "Parameters" + +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Pass by Pass" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +#, fuzzy +msgid "Path by path" +msgstr "Pad plakken" + +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 +msgid "Path to Gcode" +msgstr "Pad naar Gcode" + +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 +msgid "Post-processor:" +msgstr "Post-processor:" + +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +msgid "Preferences" +msgstr "Voorkeuren" + +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +msgid "Round all values to 4 digits" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +msgid "Scale along Z axis:" +msgstr "Schalen langs Z-as:" + +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +msgid "Select all paths if nothing is selected" +msgstr "Alle paden selecteren indien niets is geselecteerd" + +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Sort paths to reduse rapid distance" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Units (mm or in):" +msgstr "Eenheden (mm of in):" + +#: ../share/extensions/gcodetools_area.inx.h:48 +msgid "Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by colored arrows." +msgstr "Gebruik: 1. Selecteer alle offsets van het oppervlak (grijze contouren) 2. Objecten degrouperen (Shift+Ctrl+G) 3. Druk op Toepassen Verdachte kleine objecten worden gemarkeerd met gekleurde bogen." + +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +msgid "Z safe height for G00 move over blank:" +msgstr "Veilige Z-hoogte voor G00-verplaatsing over blanco:" + +#: ../share/extensions/gcodetools_area.inx.h:50 +#, fuzzy +msgid "Zig zag" +msgstr "Zigzag" + +#: ../share/extensions/gcodetools_area.inx.h:51 +msgid "delete" +msgstr "verwijderen" + +#: ../share/extensions/gcodetools_area.inx.h:53 +msgid "mark with an arrow" +msgstr "Markeren met een boog" + +#: ../share/extensions/gcodetools_area.inx.h:54 +msgid "mark with style" +msgstr "Markeren met stijl" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for Gcodetools latest stable version and try to get the updates." +msgstr "De laatste stabiele Gcodetools versie controleren en trachten de updates op te halen." + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for updates" +msgstr "Controleren op updates" + #: ../share/extensions/gcodetools_dxf_points.inx.h:3 msgid "Convert selected objects to drill points (as dxf_import plugin does). Also you can save original shape. Only the start point of each curve will be used. Also you can manually select object, open XML editor (Shift+Ctrl+X) and add or remove XML tag 'dxfpoint' with any value." msgstr "Geselecteerde objecten converteren naar boorpunten (zoals de dxf_import plugin doet). Je kan ook de originele vorm bewaren. Slechts het beginpunt van elke vorm zal gebruikt worden. Je kan ook een object manueel selecteren, de XML-editor openen (Shift+Ctrl+X) en de 'dxfpoint'-tag met elke waarde toevoegen of verwijderen." -#: ../share/extensions/gcodetools_all_in_one.inx.h:15 #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "Convert selection:" msgstr "Selectie converteren" -#: ../share/extensions/gcodetools_all_in_one.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 msgid "DXF points" msgstr "DXF-punten" -#: ../share/extensions/gcodetools_all_in_one.inx.h:17 -#: ../share/extensions/gcodetools_area.inx.h:11 -#: ../share/extensions/gcodetools_dxf_points.inx.h:7 -#: ../share/extensions/gcodetools_engraving.inx.h:3 -#: ../share/extensions/gcodetools_lathe.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -msgid "Directory:" -msgstr "Directorie:" +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +msgid "clear dxfpoint sign" +msgstr "dxf-punt teken weghalen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:18 -msgid "Draw additional graphics to debug engraving path:" -msgstr "Additionele afbeeldingen tekenen om graveringspad te debuggen:" +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +msgid "set as dxfpoint and draw arrow" +msgstr "instellen als dxf-punt en pijl tekenen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:19 -#: ../share/extensions/gcodetools_engraving.inx.h:5 -msgid "Engraving" -msgstr "Gravering" +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +msgid "set as dxfpoint and save shape" +msgstr "instellen als dxf-punt en vorm bewaren" + +#: ../share/extensions/gcodetools_engraving.inx.h:1 +msgid "Accuracy factor (2 low to 10 high):" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:20 -#: ../share/extensions/gcodetools_area.inx.h:12 -#: ../share/extensions/gcodetools_dxf_points.inx.h:8 #: ../share/extensions/gcodetools_engraving.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 -msgid "File:" -msgstr "Bestand:" +msgid "Draw additional graphics to see engraving path" +msgstr "Additionele afbeeldingen tekenen om gravurepad te zien" -#: ../share/extensions/gcodetools_all_in_one.inx.h:21 -#: ../share/extensions/gcodetools_area.inx.h:13 -#: ../share/extensions/gcodetools_dxf_points.inx.h:9 #: ../share/extensions/gcodetools_engraving.inx.h:7 -#: ../share/extensions/gcodetools_lathe.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 -msgid "Full path to log file:" -msgstr "Volledig pad naar logbestand:" +msgid "Engraving" +msgstr "Gravering" + +#: ../share/extensions/gcodetools_engraving.inx.h:17 +msgid "Maximum distance for engraving (mm/inch):" +msgstr "Maximum afstand voor gravure (mm/duim):" + +#: ../share/extensions/gcodetools_engraving.inx.h:28 +msgid "Smooth convex corners between this value and 180 degrees:" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:29 +#, fuzzy +msgid "This function creates path to engrave letters or any shape with sharp angles. Cutter's depth as a function of radius is defined by the tool. Depth may be any Python expression. For instance: cone....(45 degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +msgstr "Deze functie maakt een pad voor het graveren van scherpe hoeken. De functie voor de mesvorm wordt bepaald door het gereedschap. Enkele eenvoudige vormen: kegel...(45 graden)............: w kegel...(hoogte/diameter=10/3).: 10/3 w bol..(\"r\" diameter).........: math.sqrt(max(0,r**2-w**2)) ellips..(R1=r en R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4" + +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +msgstr "2-punts modus (verplaatsen en roteren, X/Y aspectratio behouden)" + +#: ../share/extensions/gcodetools_graffiti.inx.h:2 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" +msgstr "3-punts modus (verplaatsen, roteren en spiegelen, X/Y aspectratio verschillend)" + +#: ../share/extensions/gcodetools_graffiti.inx.h:6 +msgid "Create linearization preview" +msgstr "Voorvertoning linearisatie maken" + +#: ../share/extensions/gcodetools_graffiti.inx.h:7 +msgid "Create preview" +msgstr "Voorvertoning maken" + +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +msgid "Graffiti" +msgstr "Graffiti" + +#: ../share/extensions/gcodetools_graffiti.inx.h:19 +#, fuzzy +msgid "Maximum segment length:" +msgstr "Maximum segmentlengte (px):" + +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +#, fuzzy +msgid "Minimal connector radius:" +msgstr "Minimum straal boog:" + +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 +msgid "Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path. 3-points mode only: do not put all three into one line (use 2-points mode instead). You can modify Z surface, Z depth values later using text tool (3rd coordinates). If there are no orientation points inside current layer they are taken from the upper layer. Do not ungroup orientation points! You can select them using double click to enter the group or by Ctrl+Click. Now press apply to create control points (independent set for each layer)." +msgstr "Oriëntatiepunten worden gebruikt om de transformatie (offset, schalen, spiegeling, rotatie in het XY vlak) van het pad te berekenen. Alleen 3-punts modus: plaats niet alle 3 de punten op een lijn (gebruik dan de 2-punts modus). Je kan de Z-oppervlakte en Z-diepte later aanpassen met het tekstgereedschap (derde coördinaat). Indien er geen oriëntatiepunten in de huidige laag zijn, worden ze van de bovenste laag genomen. Degroepeer nooit oriëntatiepunten! Je kan ze selecteren door een dubbelklik om de groep binnen te gaan of door Ctrl+klik. Druk nu op Toepassen om de controlepunten aan te maken (onafhankelijke set voor elke laag)." + +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +msgid "Orientation type:" +msgstr "Type oriëntatie:" + +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +msgid "Preview's paint emmit (pts/s):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +#, fuzzy +msgid "Preview's size (px):" +msgstr "Grootte punt (px):" + +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +#, fuzzy +msgid "Start position (x;y):" +msgstr "Layoutplaatsing:" + +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +msgid "Z depth:" +msgstr "Z diepte:" + +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 +msgid "Z surface:" +msgstr "Z-oppervlak:" + +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +#, fuzzy +msgid "graffiti points" +msgstr "Oriëntatiepunten" + +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#, fuzzy +msgid "in-out reference point" +msgstr "Kleurverloopvoorkeuren" + +#: ../share/extensions/gcodetools_lathe.inx.h:6 +msgid "Create fine cut using:" +msgstr "Precisiesnede maken met:" + +#: ../share/extensions/gcodetools_lathe.inx.h:12 +msgid "Fine cut count:" +msgstr "Aantal sneden:" + +#: ../share/extensions/gcodetools_lathe.inx.h:13 +msgid "Fine cut width:" +msgstr "Breedte snede:" + +#: ../share/extensions/gcodetools_lathe.inx.h:21 +msgid "Lathe" +msgstr "Draaibank" + +#: ../share/extensions/gcodetools_lathe.inx.h:22 +msgid "Lathe X axis remap:" +msgstr "Draaibank X-as herindeling:" + +#: ../share/extensions/gcodetools_lathe.inx.h:23 +msgid "Lathe Z axis remap:" +msgstr "Draaibank Z-as herindeling:" + +#: ../share/extensions/gcodetools_lathe.inx.h:24 +#, fuzzy +msgid "Lathe modify path" +msgstr "Pad aanpassen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:22 -#: ../share/extensions/gcodetools_area.inx.h:14 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:10 -#: ../share/extensions/gcodetools_engraving.inx.h:8 -#: ../share/extensions/gcodetools_lathe.inx.h:11 -#: ../share/extensions/gcodetools_orientation_points.inx.h:3 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -#: ../share/extensions/gcodetools_tools_library.inx.h:1 -msgid "Gcodetools" -msgstr "Gcodetools" +#: ../share/extensions/gcodetools_lathe.inx.h:25 +msgid "Lathe width:" +msgstr "Breedte draaibank:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:23 -#: ../share/extensions/gcodetools_area.inx.h:15 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 -#: ../share/extensions/gcodetools_dxf_points.inx.h:11 -#: ../share/extensions/gcodetools_engraving.inx.h:9 -#: ../share/extensions/gcodetools_lathe.inx.h:12 -#: ../share/extensions/gcodetools_orientation_points.inx.h:4 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 -#: ../share/extensions/gcodetools_tools_library.inx.h:2 -msgid "Gcodetools plug-in: converts paths to Gcode (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters. This plug-in calculates Gcode for paths using circular interpolation or linear motion when needed. Tutorials, manuals and support can be found at English support forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas. Gcodetools ver. 1.6.01" -msgstr "Gcodetools uitbreiding: converteert paden in Gcode (met behulp van cirkelinterpolatie), maakt offsetpaden en graveert scherpe hoeken met conische snijmessen. Deze plugin berekent Gcode voor paden met behulp van cirkelinterpolatie of lineare verplaatsing. Tutorials, handleidingen en ondersteuning zijn beschikbaar op het Engelstalige forum: http://www.cnc-club.ru/gcodetools en op het Russische forum http://www.cnc-club.ru/gcodetoolsru. Auteurs: Nick Drobchenko, Vladimir Kalyaev, John Brooker, Henry Nicolas. Gcodetools ver. 1.6.01" +#: ../share/extensions/gcodetools_lathe.inx.h:28 +#, fuzzy +msgid "Move path" +msgstr "Patronen verplaatsen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:24 -#: ../share/extensions/gcodetools_area.inx.h:16 -#: ../share/extensions/gcodetools_dxf_points.inx.h:12 -#: ../share/extensions/gcodetools_engraving.inx.h:10 -#: ../share/extensions/gcodetools_lathe.inx.h:13 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 -msgid "Generate log file" -msgstr "Logbestand genereren" +#: ../share/extensions/gcodetools_lathe.inx.h:44 +msgid "This function modifies path so it will be able to be cut with the rectangular cutter." +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:26 -#: ../share/extensions/gcodetools_tools_library.inx.h:4 -msgid "Just check tools" -msgstr "Gereedschappen nakijken" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "-------------------------------------------------" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:27 -#: ../share/extensions/gcodetools_area.inx.h:18 -msgid "Maximum area cutting curves:" -msgstr "Maximum aantal snijcurves:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 +#, fuzzy +msgid "Create in-out paths" +msgstr "Spiraal maken" -#: ../share/extensions/gcodetools_all_in_one.inx.h:28 -#: ../share/extensions/gcodetools_engraving.inx.h:12 -msgid "Maximum distance for engraving:" -msgstr "Maximum afstand voor gravure:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +msgid "Do not add in-out reference points" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:29 -#: ../share/extensions/gcodetools_area.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:19 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 -msgid "Maximum splitting depth:" -msgstr "Maximum aantal opdelingen:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +#, fuzzy +msgid "In-out path length:" +msgstr "Padlengte" -#: ../share/extensions/gcodetools_all_in_one.inx.h:30 -#: ../share/extensions/gcodetools_area.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:13 -#: ../share/extensions/gcodetools_lathe.inx.h:20 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 -msgid "Minimum arc radius:" -msgstr "Minimum straal boog:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +msgid "In-out path max distance to reference point:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:31 -#: ../share/extensions/gcodetools_engraving.inx.h:14 -msgid "Number of sample points used to calculate distance:" -msgstr "Aantal controlepunten gebruikt voor afstandsberekening:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "In-out path radius for round path:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:32 -#: ../share/extensions/gcodetools_area.inx.h:21 -#: ../share/extensions/gcodetools_engraving.inx.h:15 -#: ../share/extensions/gcodetools_lathe.inx.h:21 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 -msgid "Offset along Z axis:" -msgstr "Offset langs Z-as:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 +msgid "In-out path type:" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:35 -#: ../share/extensions/gcodetools_orientation_points.inx.h:8 -msgid "Orientation points are used to calculate transformation (offset,scale,mirror,rotation in XY plane) of the path. 3-points mode only: do not put all three into one line (use 2-points mode instead). You can modify Z surface, Z depth values later using text tool (3rd coordinates). If there are no orientation points inside current layer they are taken from the upper layer. Do not ungroup orientation points! You can select them using double click to enter the group or by Ctrl+Click. Now press apply to create control points (independent set for each layer)." -msgstr "Oriëntatiepunten worden gebruikt om de transformatie (offset, schalen, spiegeling, rotatie in het XY vlak) van het pad te berekenen. Alleen 3-punts modus: plaats niet alle 3 de punten op een lijn (gebruik dan de 2-punts modus). Je kan de Z-oppervlakte en Z-diepte later aanpassen met het tekstgereedschap (derde coördinaat). Indien er geen oriëntatiepunten in de huidige laag zijn, worden ze van de bovenste laag genomen. Degroepeer nooit oriëntatiepunten! Je kan ze selecteren door een dubbelklik om de groep binnen te gaan of door Ctrl+klik. Druk nu op Toepassen om de controlepunten aan te maken (onafhankelijke set voor elke laag)." +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +msgid "Maximum angle for corner (0-180 deg):" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:36 -#: ../share/extensions/gcodetools_orientation_points.inx.h:9 -msgid "Orientation type:" -msgstr "Type oriëntatie:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 +#, fuzzy +msgid "Perpendicular" +msgstr "Loodrechte deellijn" -#: ../share/extensions/gcodetools_all_in_one.inx.h:37 -#: ../share/extensions/gcodetools_area.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:23 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 -msgid "Path to Gcode" -msgstr "Pad naar Gcode" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +#, fuzzy +msgid "Prepare corners" +msgstr "paginahoek" -#: ../share/extensions/gcodetools_all_in_one.inx.h:38 -#: ../share/extensions/gcodetools_area.inx.h:24 -#: ../share/extensions/gcodetools_dxf_points.inx.h:14 -#: ../share/extensions/gcodetools_engraving.inx.h:17 -#: ../share/extensions/gcodetools_lathe.inx.h:24 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 -msgid "Post-processor:" -msgstr "Post-processor:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 +msgid "Prepare path for plasma or laser cuters" +msgstr "" -#: ../share/extensions/gcodetools_all_in_one.inx.h:39 -#: ../share/extensions/gcodetools_area.inx.h:25 -#: ../share/extensions/gcodetools_dxf_points.inx.h:15 -#: ../share/extensions/gcodetools_engraving.inx.h:18 -#: ../share/extensions/gcodetools_lathe.inx.h:25 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 -msgid "Preferences" -msgstr "Voorkeuren" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 +#, fuzzy +msgid "Replace original path" +msgstr "Afsnijpad uitschakelen" -#: ../share/extensions/gcodetools_all_in_one.inx.h:40 -#: ../share/extensions/gcodetools_area.inx.h:26 -#: ../share/extensions/gcodetools_engraving.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:26 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 -msgid "Scale along Z axis:" -msgstr "Schalen langs Z-as:" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 +#, fuzzy +msgid "Round" +msgstr "Afgerond" -#: ../share/extensions/gcodetools_all_in_one.inx.h:41 -#: ../share/extensions/gcodetools_area.inx.h:27 -#: ../share/extensions/gcodetools_engraving.inx.h:20 -#: ../share/extensions/gcodetools_lathe.inx.h:27 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 -msgid "Select all paths if nothing is selected" -msgstr "Alle paden selecteren indien niets is geselecteerd" +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#, fuzzy +msgid "Stepout distance for corners:" +msgstr "Aan hoeken van omvattend vak kleven" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +msgid "Tangent" +msgstr "Tangens" + +#: ../share/extensions/gcodetools_tools_library.inx.h:4 +msgid "Just check tools" +msgstr "Gereedschappen nakijken" -#: ../share/extensions/gcodetools_all_in_one.inx.h:42 #: ../share/extensions/gcodetools_tools_library.inx.h:5 msgid "Selected tool type fills appropriate default values. You can change these values using the Text tool later on. The topmost (z order) tool in the active layer is used. If there is no tool inside the current layer it is taken from the upper layer. Press Apply to create new tool." msgstr "Het geselecteerde type gereedshap gebruikt de standaardwaarden. Je kan deze waarden nadien veranderen met het tekstgereedschap." -#: ../share/extensions/gcodetools_all_in_one.inx.h:43 -#: ../share/extensions/gcodetools_engraving.inx.h:21 -msgid "Sharp angle tolerance:" -msgstr "Tolerantie scherpe hoek:" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:44 -#: ../share/extensions/gcodetools_engraving.inx.h:22 -msgid "This function creates path to engrave sharp angles. Cutter's shape function is defined by the tool. Some simple shapes: cone....(45 degrees)...........: w cone....(height/diameter=10/3).: 10/3 w sphere..(\"r\" diameter).........: math.sqrt(max(0,r**2-w**2)) ellipse.(R1=r and R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4" -msgstr "Deze functie maakt een pad voor het graveren van scherpe hoeken. De functie voor de mesvorm wordt bepaald door het gereedschap. Enkele eenvoudige vormen: kegel...(45 graden)............: w kegel...(hoogte/diameter=10/3).: 10/3 w bol..(\"r\" diameter).........: math.sqrt(max(0,r**2-w**2)) ellips..(R1=r en R2=r*4r).....: math.sqrt(max(0,r**2-w**2))*4" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:45 #: ../share/extensions/gcodetools_tools_library.inx.h:6 msgid "Tools library" msgstr "Gereedschappenbibliotheek" -#: ../share/extensions/gcodetools_all_in_one.inx.h:46 #: ../share/extensions/gcodetools_tools_library.inx.h:7 msgid "Tools type:" msgstr "Type gereedschap:" -#: ../share/extensions/gcodetools_all_in_one.inx.h:47 -#: ../share/extensions/gcodetools_area.inx.h:28 -#: ../share/extensions/gcodetools_dxf_points.inx.h:16 -#: ../share/extensions/gcodetools_engraving.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:28 -#: ../share/extensions/gcodetools_orientation_points.inx.h:10 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -msgid "Units (mm or in):" -msgstr "Eenheden (mm of in):" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:48 -#: ../share/extensions/gcodetools_area.inx.h:29 -msgid "Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by colored arrows." -msgstr "Gebruik: 1. Selecteer alle offsets van het oppervlak (grijze contouren) 2. Objecten degrouperen (Shift+Ctrl+G) 3. Druk op Toepassen Verdachte kleine objecten worden gemarkeerd met gekleurde bogen." - -#: ../share/extensions/gcodetools_all_in_one.inx.h:49 -#: ../share/extensions/gcodetools_orientation_points.inx.h:11 -msgid "Z depth:" -msgstr "Z diepte:" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:50 -#: ../share/extensions/gcodetools_area.inx.h:30 -#: ../share/extensions/gcodetools_dxf_points.inx.h:17 -#: ../share/extensions/gcodetools_engraving.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:29 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 -msgid "Z safe height for G00 move over blank:" -msgstr "Veilige Z-hoogte voor G00-verplaatsing over blanco:" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:51 -#: ../share/extensions/gcodetools_orientation_points.inx.h:12 -msgid "Z surface:" -msgstr "Z-oppervlak:" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:52 -#: ../share/extensions/gcodetools_dxf_points.inx.h:18 -msgid "clear dxfpoint sign" -msgstr "dxf-punt teken weghalen" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:53 #: ../share/extensions/gcodetools_tools_library.inx.h:8 msgid "cone" msgstr "kegel" -#: ../share/extensions/gcodetools_all_in_one.inx.h:54 #: ../share/extensions/gcodetools_tools_library.inx.h:9 msgid "cylinder" msgstr "cilinder" -#: ../share/extensions/gcodetools_all_in_one.inx.h:55 #: ../share/extensions/gcodetools_tools_library.inx.h:10 msgid "default" msgstr "standaard" -#: ../share/extensions/gcodetools_all_in_one.inx.h:56 -#: ../share/extensions/gcodetools_area.inx.h:31 -msgid "delete" -msgstr "verwijderen" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:57 #: ../share/extensions/gcodetools_tools_library.inx.h:11 +msgid "graffiti" +msgstr "graffiti" + +#: ../share/extensions/gcodetools_tools_library.inx.h:12 msgid "lathe cutter" msgstr "frees" -#: ../share/extensions/gcodetools_all_in_one.inx.h:58 -#: ../share/extensions/gcodetools_area.inx.h:32 -msgid "mark with an arrow" -msgstr "Markeren met een boog" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:59 -#: ../share/extensions/gcodetools_area.inx.h:33 -msgid "mark with style" -msgstr "Markeren met stijl" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:60 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/gcodetools_tools_library.inx.h:13 msgid "plasma" msgstr "plasma" -#: ../share/extensions/gcodetools_all_in_one.inx.h:61 -#: ../share/extensions/gcodetools_dxf_points.inx.h:19 -msgid "set as dxfpoint and draw arrow" -msgstr "instellen als dxf-punt en pijl tekenen" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:62 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -msgid "set as dxfpoint and save shape" -msgstr "instellen als dxf-punt en vorm bewaren" - -#: ../share/extensions/gcodetools_all_in_one.inx.h:63 -#: ../share/extensions/gcodetools_tools_library.inx.h:13 +#: ../share/extensions/gcodetools_tools_library.inx.h:14 msgid "tangent knife" msgstr "tangensmes" -#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 -msgid "Check for Gcodetools latest stable version and try to get the updates." -msgstr "De laatste stabiele Gcodetools versie controleren en trachten de updates op te halen." - -#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 -msgid "Check for updates" -msgstr "Controleren op updates" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:5 -msgid "DXF Points" -msgstr "DXF-punten" - -#: ../share/extensions/gcodetools_engraving.inx.h:4 -msgid "Draw additional graphics to debug engraving path" -msgstr "Additionele afbeeldingen tekenen om gravurepad te debuggen" - -#: ../share/extensions/gcodetools_lathe.inx.h:5 -msgid "Create fine cut using:" -msgstr "Precisiesnede maken met:" - -#: ../share/extensions/gcodetools_lathe.inx.h:7 -msgid "File" -msgstr "Bestand" - -#: ../share/extensions/gcodetools_lathe.inx.h:8 -msgid "Fine cut count:" -msgstr "Aantal sneden:" - -#: ../share/extensions/gcodetools_lathe.inx.h:9 -msgid "Fine cut width:" -msgstr "Breedte snede:" - -#: ../share/extensions/gcodetools_lathe.inx.h:15 -msgid "Lathe" -msgstr "Draaibank" - -#: ../share/extensions/gcodetools_lathe.inx.h:16 -msgid "Lathe X axis remap:" -msgstr "Draaibank X-as herindeling:" - -#: ../share/extensions/gcodetools_lathe.inx.h:17 -msgid "Lathe Z axis remap:" -msgstr "Draaibank Z-as herindeling:" - -#: ../share/extensions/gcodetools_lathe.inx.h:18 -msgid "Lathe width:" -msgstr "Breedte draaibank:" - -#: ../share/extensions/gcodetools_orientation_points.inx.h:7 -msgid "Orientation points" -msgstr "Oriëntatiepunten" - #: ../share/extensions/generate_voronoi.inx.h:1 msgid "Average size of cell (px):" msgstr "Gemiddelde celgrootte (px):" @@ -26816,11 +27212,11 @@ msgstr "Kracht (%):" #: ../share/extensions/scour.inx.h:1 msgid "Convert CSS attributes to XML attributes" -msgstr "" +msgstr "CSS-attributen omzetten in XML-attributen" #: ../share/extensions/scour.inx.h:2 msgid "Create groups for similar attributes" -msgstr "" +msgstr "Groepen maken voor gelijkende attributen" #: ../share/extensions/scour.inx.h:3 msgid "Embed rasters" @@ -26836,15 +27232,15 @@ msgstr "Groepen samenvouwen" #: ../share/extensions/scour.inx.h:6 msgid "Help (Ids)" -msgstr "" +msgstr "Help (Ids)" #: ../share/extensions/scour.inx.h:7 msgid "Help (Options)" -msgstr "Help (opties)" +msgstr "Help (Opties)" #: ../share/extensions/scour.inx.h:8 msgid "Ids" -msgstr "" +msgstr "Ids" #: ../share/extensions/scour.inx.h:9 msgid "" @@ -26862,7 +27258,7 @@ msgstr "Programmadata behouden" #: ../share/extensions/scour.inx.h:17 msgid "Number of significant digits for coords" -msgstr "" +msgstr "Aantal beduidende cijfers voor coördinaten" #: ../share/extensions/scour.inx.h:18 msgid "Optimized SVG (*.svg)" @@ -26874,15 +27270,15 @@ msgstr "Geoptimaliseerde SVG-uitvoer" #: ../share/extensions/scour.inx.h:21 msgid "Preserve ID names starting with:" -msgstr "" +msgstr "ID namen behouden die beginnen met:" #: ../share/extensions/scour.inx.h:22 msgid "Preserve manually created ID names not ending with digits" -msgstr "" +msgstr "Manueel gemaakte ID-namen die niet eindigen met cijfers, behouden" #: ../share/extensions/scour.inx.h:23 msgid "Preserve these ID names, comma-separated:" -msgstr "" +msgstr "Deze ID-namen, gescheiden door komma's, behouden:" #: ../share/extensions/scour.inx.h:24 msgid "Remove comments" @@ -26898,7 +27294,7 @@ msgstr "Xml-declaratie verwijderen" #: ../share/extensions/scour.inx.h:27 msgid "Remove unused ID names for elements" -msgstr "" +msgstr "Ongebruikte ID-namen voor elementen verwijderen" #: ../share/extensions/scour.inx.h:28 msgid "Scalable Vector Graphics" @@ -26906,7 +27302,7 @@ msgstr "Scalable Vector Graphics" #: ../share/extensions/scour.inx.h:29 msgid "Shorten IDs" -msgstr "" +msgstr "ID's afkorten" #: ../share/extensions/scour.inx.h:30 msgid "Shorten color values" @@ -26940,7 +27336,7 @@ msgstr "" #: ../share/extensions/scour.inx.h:47 msgid "Work around renderer bugs" -msgstr "" +msgstr "Omzeilen van renderbugs" #: ../share/extensions/scour.inx.h:48 msgid "XML indentation (pretty-printing)" @@ -27762,39 +28158,45 @@ msgstr "Windows Metafile-invoer" msgid "XAML Input" msgstr "XAML-invoer" -#~ msgid "Iconify this dock" -#~ msgstr "Dit paneel inklappen" -#~ msgid "Close this dock" -#~ msgstr "Dit paneel sluiten" - -#, fuzzy -#~ msgid "Ancestor offset" -#~ msgstr "Gemiddelde verplaatsing:" - -#, fuzzy -#~ msgid "Maximum slope (%):" -#~ msgstr "Maximum segmentlengte (px):" - -#, fuzzy -#~ msgid "Modification type:" -#~ msgstr "Type oriëntatie:" - -#, fuzzy -#~ msgid "Shape" -#~ msgstr "Vormen" - -#, fuzzy -#~ msgid "Size and position" -#~ msgstr "Posities willekeurig maken" - -#, fuzzy -#~ msgid "Snap ancestors" -#~ msgstr "Aan rasters kleven" +#~ msgid "center" +#~ msgstr "midden" +#~ msgid "Center" +#~ msgstr "Midden" +#~ msgid "Transluscent" +#~ msgstr "Doorzichtig" +#~ msgid "Windows 32-bit Print" +#~ msgstr "Windows 32-bit print" +#~ msgid "Iconify" +#~ msgstr "Inklappen" +#~ msgid "Close" +#~ msgstr "Sluiten" +#~ msgid "(invalid UTF-8 string)" +#~ msgstr "(ongeldige UTF-8 string)" +#~ msgid "Label:" +#~ msgstr "Label:" +#~ msgid "Print Previe_w" +#~ msgstr "Afdruk_voorbeeld" +#~ msgid "Preview document printout" +#~ msgstr "Een afdrukvoorbeeld van het document tonen" +#~ msgctxt "Font selector" +#~ msgid "_Style" +#~ msgstr "_Stijl" +#~ msgid "Font si_ze:" +#~ msgstr "Letter_grootte:" +#~ msgid "All in one" +#~ msgstr "Alles in één" +#~ msgid "Draw additional graphics to debug engraving path:" +#~ msgstr "Additionele afbeeldingen tekenen om graveringspad te debuggen:" +#~ msgid "Number of sample points used to calculate distance:" +#~ msgstr "Aantal controlepunten gebruikt voor afstandsberekening:" +#~ msgid "Sharp angle tolerance:" +#~ msgstr "Tolerantie scherpe hoek:" +#~ msgid "DXF Points" +#~ msgstr "DXF-punten" +#~ msgid "File" +#~ msgstr "Bestand" #~ msgid "Font" #~ msgstr "Lettertype" -#~ msgctxt "Font selector" -#~ msgid "Style" -#~ msgstr "Stijl" #~ msgid "X frequency:" #~ msgstr "X-frequentie:" #~ msgid "Y frequency:" @@ -28435,8 +28837,6 @@ msgstr "XAML-invoer" #~ msgstr "%s (afdrukvoorbeeld kleuren) - Inkscape" #~ msgid "Drop shadow, color" #~ msgstr "Slagschaduw, gekleurd -EXP-" -#~ msgid "Colorizable Drop shadow" -#~ msgstr "Gekleurde slagschaduw" #~ msgid "Simplification:" #~ msgstr "Vereenvoudiging:" #~ msgid "Fading:" -- cgit v1.2.3 From bcab15a0a88931f0cf2374ab0b76877e90f7f76c Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Tue, 12 Jul 2011 22:26:46 +0200 Subject: GUI uniformisation (bzr r10446) --- share/extensions/dxf_input.inx | 10 +++++----- src/ui/dialog/filter-effects-dialog.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/share/extensions/dxf_input.inx b/share/extensions/dxf_input.inx index 0e7ed7b8d..0ba38252a 100644 --- a/share/extensions/dxf_input.inx +++ b/share/extensions/dxf_input.inx @@ -7,18 +7,18 @@ true - 1.0 - 0.0 - 0.0 + 1.0 + 0.0 + 0.0 false ------------------------------------------------------------------------- - + Latin 1 CP 1250 CP 1252 UTF 8 - Arial + Arial <_param name="inputhelp" type="description" xml:space="preserve">- AutoCAD Release 13 and newer. diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index c6d81b070..68cf3b505 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -965,10 +965,10 @@ public: _settings.add_spinslider(0, SP_ATTR_ELEVATION, _("Elevation"), 0, 360, 1, 1, 0, _("Direction angle for the light source on the YZ plane, in degrees")); _settings.type(LIGHT_POINT); - _settings.add_multispinbutton(/*default x:*/ (double) 0, /*default y:*/ (double) 0, /*default z:*/ (double) 0, SP_ATTR_X, SP_ATTR_Y, SP_ATTR_Z, _("Location"), -99999, 99999, 1, 100, 0, _("X coordinate"), _("Y coordinate"), _("Z coordinate")); + _settings.add_multispinbutton(/*default x:*/ (double) 0, /*default y:*/ (double) 0, /*default z:*/ (double) 0, SP_ATTR_X, SP_ATTR_Y, SP_ATTR_Z, _("Location:"), -99999, 99999, 1, 100, 0, _("X coordinate"), _("Y coordinate"), _("Z coordinate")); _settings.type(LIGHT_SPOT); - _settings.add_multispinbutton(/*default x:*/ (double) 0, /*default y:*/ (double) 0, /*default z:*/ (double) 0, SP_ATTR_X, SP_ATTR_Y, SP_ATTR_Z, _("Location"), -99999, 99999, 1, 100, 0, _("X coordinate"), _("Y coordinate"), _("Z coordinate")); + _settings.add_multispinbutton(/*default x:*/ (double) 0, /*default y:*/ (double) 0, /*default z:*/ (double) 0, SP_ATTR_X, SP_ATTR_Y, SP_ATTR_Z, _("Location:"), -99999, 99999, 1, 100, 0, _("X coordinate"), _("Y coordinate"), _("Z coordinate")); _settings.add_multispinbutton(/*default x:*/ (double) 0, /*default y:*/ (double) 0, /*default z:*/ (double) 0, SP_ATTR_POINTSATX, SP_ATTR_POINTSATY, SP_ATTR_POINTSATZ, _("Points At"), -99999, 99999, 1, 100, 0, _("X coordinate"), _("Y coordinate"), _("Z coordinate")); -- cgit v1.2.3 From f2c03a756afd46b6ff2b35720442a853649b65c3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Jul 2011 22:00:48 +1000 Subject: update cmake for new files (bzr r10447) --- src/libgdl/CMakeLists.txt | 10 +++++----- src/ui/CMakeLists.txt | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/libgdl/CMakeLists.txt b/src/libgdl/CMakeLists.txt index befb6edb7..3457337e9 100644 --- a/src/libgdl/CMakeLists.txt +++ b/src/libgdl/CMakeLists.txt @@ -1,17 +1,17 @@ set(libgdl_SRC - gdl-dock.c gdl-dock-bar.c - gdl-dock-item.c + gdl-dock-item-button-image.c gdl-dock-item-grip.c + gdl-dock-item.c gdl-dock-master.c gdl-dock-notebook.c gdl-dock-object.c gdl-dock-paned.c gdl-dock-placeholder.c gdl-dock-tablabel.c + gdl-dock.c gdl-i18n.c - gdl-stock.c gdl-switcher.c gdl-tools.h libgdlmarshal.c @@ -21,6 +21,7 @@ set(libgdl_SRC # ------- # Headers gdl-dock-bar.h + gdl-dock-item-button-image.h gdl-dock-item-grip.h gdl-dock-item.h gdl-dock-master.h @@ -32,9 +33,8 @@ set(libgdl_SRC gdl-dock.h gdl-i18n.h gdl-stock-icons.h - gdl-stock.h gdl-switcher.h - libgdl.h + gdl.h libgdlmarshal.h libgdltypebuiltins.h ) diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 9bbdd861e..1a662f3be 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -159,7 +159,6 @@ set(ui_SRC dialog/print-colors-preview-dialog.h dialog/print.h dialog/scriptdialog.h - dialog/session-player.h dialog/svg-fonts-dialog.h dialog/swatches.h dialog/tile.h -- cgit v1.2.3 From 9323663d8412d926c6a868b5fc89f2b354cf77bc Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 13 Jul 2011 13:04:36 +0200 Subject: Properly handle CSS font shorthand property. Work done with Abhishek Sharma for GSOC. (bzr r10448) --- src/style.cpp | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 143 insertions(+), 11 deletions(-) diff --git a/src/style.cpp b/src/style.cpp index 699b087dd..303b347c4 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -6,6 +6,7 @@ * Peter Moulder * bulia byak * Abhishek Sharma + * Tavmjong Bah * * Copyright (C) 2001-2002 Lauris Kaplinski * Copyright (C) 2001 Ximian, Inc. @@ -911,8 +912,137 @@ sp_style_merge_property(SPStyle *style, gint id, gchar const *val) style->text->font.value = g_strdup(val); style->text->font.set = TRUE; style->text->font.inherit = (val && !strcmp(val, "inherit")); + + // Break string into white space separated tokens + std::stringstream os( val ); + Glib::ustring param; + + while (os >> param) { + + // CSS is case insensitive but we're comparing against lowercase strings + Glib::ustring lparam = param.lowercase(); + + if (lparam == "/") { + + os >> param; + // Eat the line-height for the moment as it is not an SVG property. + // lparam = param.lowercase(); + // sp_style_read_ilengthornormal(&style->line_height, lparam); + + } else { + + // Skip if "normal" as that is the default (and we don't know which attribute it applies to). + if (lparam == "normal") continue; + + // Check each property in turn + + // font-style + SPIEnum test_style; + test_style.set = FALSE; + + // Read once to see if param is valid style. If valid, .set will be TRUE. + sp_style_read_ienum(&test_style, lparam.c_str(), enum_font_style, true); + + // If valid style parameter + if (test_style.set) { + + // If not previously set + if (!style->font_style.set) { + style->font_style.set = TRUE; + style->font_style.inherit = test_style.inherit; + style->font_style.value = test_style.value; + style->font_style.computed = test_style.computed; + } + continue; // Next parameter. + } + + // font-variant (small-caps) + SPIEnum test_variant; + test_variant.set = FALSE; + sp_style_read_ienum(&test_variant, lparam.c_str(), enum_font_variant, true); + + // If valid variant parameter + if (test_variant.set) { + + // If not previously set + if (!style->font_variant.set) { + style->font_variant.set = TRUE; + style->font_variant.inherit = test_variant.inherit; + style->font_variant.value = test_variant.value; + style->font_variant.computed = test_variant.computed; + } + continue; // Next parameter. + } + + // font-weight + SPIEnum test_weight; + test_weight.set = FALSE; + sp_style_read_ienum(&test_weight, lparam.c_str(), enum_font_weight, true); + + // If valid weight parameter + if (test_weight.set) { + + // If not previously set + if (!style->font_weight.set) { + style->font_weight.set = TRUE; + style->font_weight.inherit = test_weight.inherit; + style->font_weight.value = test_weight.value; + style->font_weight.computed = test_weight.computed; + } + continue; // Next parameter + } + + // Font-size + SPIFontSize test_size; + test_size.set = FALSE; + + // Read once to see if param is valid size. + sp_style_read_ifontsize( &test_size, lparam.c_str() ); + + // If valid size parameter + if (test_size.set) { + + // If not previously set + if (!style->font_size.set) { + style->font_size.set = TRUE; + style->font_size.inherit = test_size.inherit; + style->font_size.unit = test_size.unit; + style->font_size.value = test_size.value; + style->font_size.computed = test_size.computed; + style->font_size.type = test_size.type; + style->font_size.literal = test_size.literal; + } + continue; + } + + // No valid property value found. + break; + } + } // params + + // The rest must be font-family... + std::string val_s = val; + std::string family = val_s.substr( val_s.find( param ) ); + + if (!style->text_private) sp_style_privatize_text(style); + if (!style->text->font_family.set) { + gchar *val_unquoted = attribute_unquote( family.c_str() ); + sp_style_read_istring(&style->text->font_family, val_unquoted); + if (val_unquoted) g_free (val_unquoted); + } + + // Set all properties to their default values per CSS 2.1 spec if not already set + SPS_READ_IFONTSIZE_IF_UNSET(&style->font_size, "medium" ); + SPS_READ_IENUM_IF_UNSET(&style->font_style, "normal", enum_font_style, true); + SPS_READ_IENUM_IF_UNSET(&style->font_variant, "normal", enum_font_variant, true); + SPS_READ_IENUM_IF_UNSET(&style->font_weight, "normal", enum_font_weight, true); + // Line height is not an SVG property but Inkscape uses it for multi-line text. + // sp_style_read_ilengthornormal(&style->line_height, "normal"); + } + break; + /* Text */ case SP_PROP_TEXT_INDENT: SPS_READ_ILENGTH_IF_UNSET(&style->text_indent, val); @@ -3109,9 +3239,8 @@ sp_style_read_ilength(SPILength *val, gchar const *str) val->unit = SP_CSS_UNIT_PT; val->computed = value * PX_PER_PT; } else if (!strcmp(e, "pc")) { - /* 1 pica = 12pt; FIXME: add it to SPUnit */ val->unit = SP_CSS_UNIT_PC; - val->computed = value * PX_PER_PT * 12; + val->computed = value * PX_PER_PC; } else if (!strcmp(e, "mm")) { val->unit = SP_CSS_UNIT_MM; val->computed = value * PX_PER_MM; @@ -3335,16 +3464,19 @@ sp_style_read_ifontsize(SPIFontSize *val, gchar const *str) return; } else { SPILength length; + length.set = FALSE; sp_style_read_ilength(&length, str); - val->set = length.set; - val->inherit = length.inherit; - val->unit = length.unit; - val->value = length.value; - val->computed = length.computed; - if( val->unit == SP_CSS_UNIT_PERCENT ) { - val->type = SP_FONT_SIZE_PERCENTAGE; - } else { - val->type = SP_FONT_SIZE_LENGTH; + if( length.set ) { + val->set = TRUE; + val->inherit = length.inherit; + val->unit = length.unit; + val->value = length.value; + val->computed = length.computed; + if( val->unit == SP_CSS_UNIT_PERCENT ) { + val->type = SP_FONT_SIZE_PERCENTAGE; + } else { + val->type = SP_FONT_SIZE_LENGTH; + } } return; } -- cgit v1.2.3 From 52f33bbb832b566491f99ee64db75076682faa4e Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Wed, 13 Jul 2011 21:57:42 +0200 Subject: UI fixes for gcodetools extension (bzr r10449) --- share/extensions/gcodetools_about.inx | 4 ++-- share/extensions/gcodetools_area.inx | 4 ++-- share/extensions/gcodetools_lathe.inx | 2 +- share/extensions/gcodetools_path_to_gcode.inx | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/share/extensions/gcodetools_about.inx b/share/extensions/gcodetools_about.inx index 3dd983835..b6c0fcde2 100644 --- a/share/extensions/gcodetools_about.inx +++ b/share/extensions/gcodetools_about.inx @@ -10,10 +10,10 @@ <_param name="help" type="description">Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode is a special format which is used in most of CNC machines. So Gcodetools allows you to use Inkscape as CAM program. -It can be use with a lot of machone types: +It can be use with a lot of machine types: Mills Lathes - Laser and Palsma cutters and engravers + Laser and Plasma cutters and engravers Mill engravers Plotters etc. diff --git a/share/extensions/gcodetools_area.inx b/share/extensions/gcodetools_area.inx index 9f4a083d4..30ed362cd 100644 --- a/share/extensions/gcodetools_area.inx +++ b/share/extensions/gcodetools_area.inx @@ -21,7 +21,7 @@ Only one offset will be created if the "Area width" is equal to "1/2 D". - 0 + 0 0 0 @@ -50,7 +50,7 @@ Suspected small objects will be marked out by colored arrows. 1 4 - + <_option value="subpath by subpath">Subpath by subpath <_option value="path by path">Path by path <_option value="pass by pass">Pass by Pass diff --git a/share/extensions/gcodetools_lathe.inx b/share/extensions/gcodetools_lathe.inx index a45896f3e..641a4f065 100644 --- a/share/extensions/gcodetools_lathe.inx +++ b/share/extensions/gcodetools_lathe.inx @@ -30,7 +30,7 @@ 1 4 - + <_option value="subpath by subpath">Subpath by subpath <_option value="path by path">Path by path <_option value="pass by pass">Pass by Pass diff --git a/share/extensions/gcodetools_path_to_gcode.inx b/share/extensions/gcodetools_path_to_gcode.inx index 16ac68ab8..b610c490b 100644 --- a/share/extensions/gcodetools_path_to_gcode.inx +++ b/share/extensions/gcodetools_path_to_gcode.inx @@ -10,7 +10,7 @@ 1 4 - + <_option value="subpath by subpath">Subpath by subpath <_option value="path by path">Path by path <_option value="pass by pass">Pass by Pass -- cgit v1.2.3 From 6973283a77d7becd6a5a1bd7396206c6840ca785 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Wed, 13 Jul 2011 23:43:55 +0200 Subject: Fix crashes in print preview Fixed bugs: - https://launchpad.net/bugs/806105 (bzr r10450) --- src/display/cairo-utils.cpp | 12 ++++++++++++ src/display/cairo-utils.h | 1 + src/extension/internal/cairo-renderer.cpp | 8 +++++--- src/helper/pixbuf-ops.cpp | 5 +++-- src/ui/cache/svg_preview_cache.cpp | 3 +-- src/ui/dialog/color-item.cpp | 4 ++-- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/display/cairo-utils.cpp b/src/display/cairo-utils.cpp index 90f65c33e..8b75f09a6 100644 --- a/src/display/cairo-utils.cpp +++ b/src/display/cairo-utils.cpp @@ -345,6 +345,18 @@ ink_cairo_surface_create_for_argb32_pixbuf(GdkPixbuf *pb) return pbs; } +/** @brief Cleanup function for GdkPixbuf. + * This function should be passed as the GdkPixbufDestroyNotify parameter + * to gdk_pixbuf_new_from_data when creating a GdkPixbuf backed by + * a Cairo surface. + */ +void +ink_cairo_pixbuf_cleanup(guchar *pixels, void *data) +{ + cairo_surface_t *surface = reinterpret_cast(data); + cairo_surface_destroy(surface); +} + /** @brief Create an exact copy of a surface. * Creates a surface that has the same type, content type, dimensions and contents * as the specified surface. */ diff --git a/src/display/cairo-utils.h b/src/display/cairo-utils.h index 0c2ac2dd6..1de88785d 100644 --- a/src/display/cairo-utils.h +++ b/src/display/cairo-utils.h @@ -106,6 +106,7 @@ void convert_pixels_argb32_to_pixbuf(guchar *data, int w, int h, int rs); void convert_pixbuf_normal_to_argb32(GdkPixbuf *); void convert_pixbuf_argb32_to_normal(GdkPixbuf *); cairo_surface_t *ink_cairo_surface_create_for_argb32_pixbuf(GdkPixbuf *pb); +void ink_cairo_pixbuf_cleanup(guchar *pixels, void *surface); G_GNUC_CONST guint32 argb32_from_pixbuf(guint32 in); G_GNUC_CONST guint32 pixbuf_from_argb32(guint32 in); diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 6118a7ae9..1e550f7d1 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -475,9 +475,11 @@ static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx) } // The width and height of the bitmap in pixels - unsigned width = (unsigned) floor ((bbox->max()[Geom::X] - bbox->min()[Geom::X]) * (res / PX_PER_IN)); - unsigned height =(unsigned) floor ((bbox->max()[Geom::Y] - bbox->min()[Geom::Y]) * (res / PX_PER_IN)); - + unsigned width = ceil((bbox->max()[Geom::X] - bbox->min()[Geom::X]) * (res / PX_PER_IN)); + unsigned height = ceil((bbox->max()[Geom::Y] - bbox->min()[Geom::Y]) * (res / PX_PER_IN)); + + if (width == 0 || height == 0) return; + // Scale to exactly fit integer bitmap inside bounding box double scale_x = (bbox->max()[Geom::X] - bbox->min()[Geom::X]) / width; double scale_y = (bbox->max()[Geom::Y] - bbox->min()[Geom::Y]) / height; diff --git a/src/helper/pixbuf-ops.cpp b/src/helper/pixbuf-ops.cpp index f6796f2ad..9ebbe13c7 100644 --- a/src/helper/pixbuf-ops.cpp +++ b/src/helper/pixbuf-ops.cpp @@ -107,6 +107,7 @@ sp_generate_internal_bitmap(SPDocument *doc, gchar const */*filename*/, GSList *items_only) { + if (width == 0 || height == 0) return NULL; GdkPixbuf* pixbuf = NULL; /* Create new arena for offscreen rendering*/ @@ -167,8 +168,8 @@ sp_generate_internal_bitmap(SPDocument *doc, gchar const */*filename*/, pixbuf = gdk_pixbuf_new_from_data(cairo_image_surface_get_data(surface), GDK_COLORSPACE_RGB, TRUE, 8, width, height, cairo_image_surface_get_stride(surface), - (GdkPixbufDestroyNotify) cairo_surface_destroy, - NULL); + ink_cairo_pixbuf_cleanup, + surface); convert_pixbuf_argb32_to_normal(pixbuf); } else diff --git a/src/ui/cache/svg_preview_cache.cpp b/src/ui/cache/svg_preview_cache.cpp index fd7070bab..edd7c9431 100644 --- a/src/ui/cache/svg_preview_cache.cpp +++ b/src/ui/cache/svg_preview_cache.cpp @@ -79,8 +79,7 @@ GdkPixbuf* render_pixbuf(NRArenaItem* root, double scale_factor, const Geom::Rec GDK_COLORSPACE_RGB, TRUE, 8, psize, psize, cairo_image_surface_get_stride(s), - (GdkPixbufDestroyNotify)cairo_surface_destroy, - NULL); + ink_cairo_pixbuf_cleanup, s); convert_pixbuf_argb32_to_normal(pixbuf); return pixbuf; diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index 3463aa496..598827da9 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -225,7 +225,7 @@ static void colorItemDragBegin( GtkWidget */*widget*/, GdkDragContext* dc, gpoin pixbuf = gdk_pixbuf_new_from_data(cairo_image_surface_get_data(s), GDK_COLORSPACE_RGB, TRUE, 8, width, height, cairo_image_surface_get_stride(s), - (GdkPixbufDestroyNotify) cairo_surface_destroy, NULL); + ink_cairo_pixbuf_cleanup, s); convert_pixbuf_argb32_to_normal(pixbuf); } else { Glib::RefPtr thumb = Gdk::Pixbuf::create( Gdk::COLORSPACE_RGB, false, 8, width, height ); @@ -533,7 +533,7 @@ void ColorItem::_regenPreview(EekPreview * preview) GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( cairo_image_surface_get_data(s), GDK_COLORSPACE_RGB, TRUE, 8, w, h, cairo_image_surface_get_stride(s), - (GdkPixbufDestroyNotify) cairo_surface_destroy, NULL); + ink_cairo_pixbuf_cleanup, s); convert_pixbuf_argb32_to_normal(pixbuf); eek_preview_set_pixbuf( preview, pixbuf ); } -- cgit v1.2.3