From 650a70ae22f63778fca6ee36d6e08948ade9dd4e Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 13:45:37 +0100 Subject: Initial rebase on Gtk::AboutDialog --- src/ui/dialog/aboutbox.cpp | 1215 ++++++++------------------------------------ src/ui/dialog/aboutbox.h | 11 +- 2 files changed, 217 insertions(+), 1009 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 9b99dde6b..c95f84f8e 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -22,9 +22,11 @@ #endif #include "ui/dialog/aboutbox.h" + +#include #include -#include -#include +#include + #include #include @@ -33,6 +35,7 @@ #include "svg-view-widget.h" #include "sp-text.h" #include "text-editing.h" +#include "ui/icon-names.h" #include "util/units.h" #include "inkscape-version.h" @@ -46,112 +49,38 @@ namespace Dialog { static Gtk::Widget *build_splash_widget(); - - -static Gtk::ScrolledWindow - *make_scrolled_text(const Glib::ustring &contents); - - - static AboutBox *window=NULL; - - void AboutBox::show_about() { if (!window) window = new AboutBox(); window->show(); } - - void AboutBox::hide_about() { if (window) window->hide(); } - /** * Constructor */ -AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { +AboutBox::AboutBox() { // call this first initStrings(); - Gtk::Notebook *tabs=new Gtk::Notebook(); - - tabs->set_scrollable(); - Gtk::Widget *splash=build_splash_widget(); if (splash) { - tabs->append_page(*manage(splash), _("_Splash"), true); + get_content_area()->pack_end(*manage(splash), true, true); + splash->show_all(); } - tabs->append_page(*manage( - make_scrolled_text(authors_text)), _("_Authors"), true); - tabs->append_page(*manage( - make_scrolled_text(translators_text)), _("_Translators"), true); - tabs->append_page(*manage( - make_scrolled_text(license_text)), _("_License"), true); - - get_content_area()->pack_end(*manage(tabs), true, true); - - tabs->show_all(); - - add_button(_("_Close"), Gtk::RESPONSE_CLOSE); - set_default_response(Gtk::RESPONSE_CLOSE); + set_logo_icon_name(INKSCAPE_ICON("inkscape")); + set_program_name("Inkscape"); + set_version(Inkscape::version_string); - Gtk::Label *label=new Gtk::Label(); - gchar *label_text = - g_strdup_printf("Inkscape %s", - Inkscape::version_string); - label->set_markup(label_text); - -#if WITH_GTKMM_3_10 - label->set_halign(Gtk::ALIGN_END); - label->set_valign(Gtk::ALIGN_CENTER); -#else - label->set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); -#endif - -#if WITH_GTKMM_3_12 - label->set_margin_start(5); - label->set_margin_end(5); -#else - label->set_padding(5,0); -#endif - - g_free(label_text); - label->set_selectable(true); - label->show(); - - Gtk::Label *link = new Gtk::Label(); - const gchar *website_link = - "https://www.inkscape.org"; - - link->set_markup(website_link); - -#if WITH_GTKMM_3_10 - link->set_halign(Gtk::ALIGN_END); -#else - link->set_alignment(Gtk::ALIGN_END); -#endif - -#if WITH_GTKMM_3_12 - label->set_margin_start(5); - label->set_margin_end(5); - label->set_margin_top(5); - label->set_margin_bottom(5); -#else - link->set_padding(5,5); -#endif - - link->set_selectable(true); - link->show(); - - get_content_area()->pack_start(*manage(label), false, false); - get_content_area()->pack_start(*manage(link), false, false); + set_website("https://www.inkscape.org"); Gtk::Requisition minimum_size; Gtk::Requisition natural_size; @@ -162,18 +91,6 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { set_default_size(minimum_size.width, minimum_size.height); } - - - -void AboutBox::on_response(int response_id) { - if ( response_id == Gtk::RESPONSE_CLOSE ) { - AboutBox::hide_about(); - } -} - - - - Gtk::Widget *build_splash_widget() { /* TRANSLATORS: This is the filename of the `About Inkscape' picture in the `screens' directory. Thus the translation of "about.svg" should be @@ -181,16 +98,20 @@ Gtk::Widget *build_splash_widget() { Please don't translate the filename unless the translated picture exists. */ + // Try to get the translated version of the 'About Inkscape' file first. If the + // translation fails, or if the file does not exist, then fall-back to the + // default untranslated "about.svg" file + // // FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the // native filename encoding... and the filename passed to sp_document_new // should be in UTF-*8.. - - char *about=g_build_filename(INKSCAPE_SCREENSDIR, _("about.svg"), NULL); - if (!g_file_test (about, G_FILE_TEST_EXISTS)) { - about=g_build_filename(INKSCAPE_SCREENSDIR, "about.svg", NULL); + auto about = Glib::build_filename(INKSCAPE_SCREENSDIR, _("about.svg")); + if (!Glib::file_test (about, Glib::FILE_TEST_EXISTS)) { + about = Glib::build_filename(INKSCAPE_SCREENSDIR, "about.svg"); } - SPDocument *doc=SPDocument::createNewDoc (about, TRUE); - g_free(about); + + // Create an Inkscape document from the 'About Inkscape' picture + SPDocument *doc=SPDocument::createNewDoc (about.c_str(), TRUE); g_return_val_if_fail(doc != NULL, NULL); SPObject *version = doc->getObjectById("version"); @@ -199,10 +120,13 @@ Gtk::Widget *build_splash_widget() { } doc->ensureUpToDate(); + // TODO: Return a Gdk::Pixbuf instead of a widget, for better integration + // with the parent Gtk::AboutDialog class GtkWidget *v=sp_svg_view_widget_new(doc); - double width=doc->getWidth().value("px"); - double height=doc->getHeight().value("px"); + // temporary hack: halve the dimensions so the dialog will fit + double width=doc->getWidth().value("px") / 2; + double height=doc->getHeight().value("px") / 2; doc->doUnref(); @@ -217,33 +141,6 @@ Gtk::Widget *build_splash_widget() { return frame; } - - - -/** - * This attempts to emulate the AboutDialog child dialog settings as - * closely as possible. Mostly, that's margin widths and shadows. Size - * is probably set in some other way, but this looked close enough. - */ -static Gtk::ScrolledWindow *make_scrolled_text(const Glib::ustring &contents) { - Gtk::ScrolledWindow *scrolled=new Gtk::ScrolledWindow(); - - scrolled->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - scrolled->set_shadow_type(Gtk::SHADOW_IN); - - Gtk::TextView *textview=manage(new Gtk::TextView()); - textview->set_editable(false); - textview->set_left_margin(10); - textview->set_right_margin(10); - textview->get_buffer()->set_text(contents); - scrolled->add(*textview); - - return scrolled; -} - - - - /** * This method must be called before any of the texts are * used for making widgets @@ -265,194 +162,193 @@ void AboutBox::initStrings() { * * and paste the result from the combo box here. */ - authors_text = -"Maximilian Albert\n" -"Joshua A. Andler\n" -"Tavmjong Bah\n" -"Pierre Barbry-Blot\n" -"Jean-François Barraud\n" -"Campbell Barton\n" -"Bill Baxter\n" -"John Beard\n" -"John Bintz\n" -"Arpad Biro\n" -"Nicholas Bishop\n" -"Joshua L. Blocher\n" -"Hanno Böck\n" -"Tomasz Boczkowski\n" -"Adrian Boguszewski\n" -"Henrik Bohre\n" -"Boldewyn\n" -"Daniel Borgmann\n" -"Bastien Bouclet\n" -"Hans Breuer\n" -"Gustav Broberg\n" -"Christopher Brown\n" -"Marcus Brubaker\n" -"Luca Bruno\n" -"Brynn (brynn@inkscapecommunity.com)\n" -"Nicu Buculei\n" -"Bulia Byak\n" -"Pierre Caclin\n" -"Ian Caldwell\n" -"Gail Carmichael\n" -"Ed Catmur\n" -"Chema Celorio\n" -"Jabiertxo Arraiza Cenoz\n" -"Johan Ceuppens\n" -"Zbigniew Chyla\n" -"Alexander Clausen\n" -"John Cliff\n" -"Kees Cook\n" -"Ben Cromwell\n" -"Robert Crosbie\n" -"Jon Cruz\n" -"Aurélie De-Cooman\n" -"Milosz Derezynski\n" -"Daniel Díaz\n" -"Bruno Dilly\n" -"Larry Doolittle\n" -"Nicolas Dufour\n" -"Tim Dwyer\n" -"Maxim V. Dziumanenko\n" -"Moritz Eberl\n" -"Johan Engelen\n" -"Miklos Erdelyi\n" -"Ulf Erikson\n" -"Noé Falzon\n" -"Sebastian Faubel\n" -"Frank Felfe\n" -"Andrew Fitzsimon\n" -"Edward Flick\n" -"Marcin Floryan\n" -"Ben Fowler\n" -"Fred\n" -"Cedric Gemy\n" -"Steren Giannini\n" -"Olivier Gondouin\n" -"Ted Gould\n" -"Toine de Greef\n" -"Michael Grosberg\n" -"Kris De Gussem\n" -"Bryce Harrington\n" -"Dale Harvey\n" -"Aurélio Adnauer Heckert\n" -"Carl Hetherington\n" -"Jos Hirth\n" -"Hannes Hochreiner\n" -"Thomas Holder\n" -"Joel Holdsworth\n" -"Christoffer Holmstedt\n" -"Alan Horkan\n" -"Karl Ove Hufthammer\n" -"Richard Hughes\n" -"Nathan Hurst\n" -"inductiveload\n" -"Thomas Ingham\n" -"Jean-Olivier Irisson\n" -"Bob Jamison\n" -"Ted Janeczko\n" -"Marc Jeanmougin\n" -"jEsuSdA\n" -"Fernando Lucchesi Bastos Jurema\n" -"Lauris Kaplinski\n" -"Lynn Kerby\n" -"Niko Kiirala\n" -"James Kilfiger\n" -"Nikita Kitaev\n" -"Jason Kivlighn\n" -"Adrian Knoth\n" -"Krzysztof Kosiński\n" -"Petr Kovar\n" -"Benoît Lavorata\n" -"Alex Leone\n" -"Julien Leray\n" -"Raph Levien\n" -"Diederik van Lierop\n" -"Nicklas Lindgren\n" -"Vitaly Lipatov\n" -"Ivan Louette\n" -"Pierre-Antoine Marc\n" -"Aurel-Aimé Marmion\n" -"Colin Marquardt\n" -"Craig Marshall\n" -"Ivan Masár\n" -"Dmitry G. Mastrukov\n" -"David Mathog\n" -"Matiphas\n" -"Michael Meeks\n" -"Federico Mena\n" -"MenTaLguY\n" -"Aubanel Monnier\n" -"Vincent Montagne\n" -"Tim Mooney\n" -"Derek P. Moore\n" -"Chris Morgan\n" -"Peter Moulder\n" -"Jörg Müller\n" -"Yukihiro Nakai\n" -"Victor Navez\n" -"Christian Neumair\n" -"Nick\n" -"Andreas Nilsson\n" -"Mitsuru Oka\n" -"Vinícius dos Santos Oliveira\n" -"Martin Owens\n" -"Alvin Penner\n" -"Matthew Petroff\n" -"Jon Phillips\n" -"Zdenko Podobny\n" -"Alexandre Prokoudine\n" -"Jean-René Reinhard\n" -"Alexey Remizov\n" -"Frederic Rodrigo\n" -"Hugo Rodrigues\n" -"Juarez Rudsatz\n" -"Xavier Conde Rueda\n" -"Felipe Corrêa da Silva Sanches\n" -"Christian Schaller\n" -"Marco Scholten\n" -"Tom von Schwerdtner\n" -"Danilo Šegan\n" -"Abhishek Sharma\n" -"Shivaken\n" -"Michael Sloan\n" -"John Smith\n" -"Sandra Snan\n" -"Boštjan Špetič\n" -"Aaron Spike\n" -"Kaushik Sridharan\n" -"Ralf Stephan\n" -"Dariusz Stojek\n" -"Martin Sucha\n" -"~suv\n" -"Pat Suwalski\n" -"Adib Taraben\n" -"Hugh Tebby\n" -"Jonas Termeau\n" -"David Turner\n" -"Andre Twupack\n" -"Aleksandar Urošević\n" -"Alex Valavanis\n" -"Joakim Verona\n" -"Lucas Vieites\n" -"Daniel Wagenaar\n" -"Liam P. White\n" -"Sebastian Wüst\n" -"Michael Wybrow\n" -"Gellule Xg\n" -"Daniel Yacob\n" -"Masatake Yamato\n" -"David Yip" -; + std::vector authors = { + "Maximilian Albert", + "Joshua A. Andler", + "Tavmjong Bah", + "Pierre Barbry-Blot", + "Jean-François Barraud", + "Campbell Barton", + "Bill Baxter", + "John Beard", + "John Bintz", + "Arpad Biro", + "Nicholas Bishop", + "Joshua L. Blocher", + "Hanno Böck", + "Tomasz Boczkowski", + "Adrian Boguszewski", + "Henrik Bohre", + "Boldewyn", + "Daniel Borgmann", + "Bastien Bouclet", + "Hans Breuer", + "Gustav Broberg", + "Christopher Brown", + "Marcus Brubaker", + "Luca Bruno", + "Brynn (brynn@inkscapecommunity.com)", + "Nicu Buculei", + "Bulia Byak", + "Pierre Caclin", + "Ian Caldwell", + "Gail Carmichael", + "Ed Catmur", + "Chema Celorio", + "Jabiertxo Arraiza Cenoz", + "Johan Ceuppens", + "Zbigniew Chyla", + "Alexander Clausen", + "John Cliff", + "Kees Cook", + "Ben Cromwell", + "Robert Crosbie", + "Jon Cruz", + "Aurélie De-Cooman", + "Milosz Derezynski", + "Daniel Díaz", + "Bruno Dilly", + "Larry Doolittle", + "Nicolas Dufour", + "Tim Dwyer", + "Maxim V. Dziumanenko", + "Moritz Eberl", + "Johan Engelen", + "Miklos Erdelyi", + "Ulf Erikson", + "Noé Falzon", + "Sebastian Faubel", + "Frank Felfe", + "Andrew Fitzsimon", + "Edward Flick", + "Marcin Floryan", + "Ben Fowler", + "Fred", + "Cedric Gemy", + "Steren Giannini", + "Olivier Gondouin", + "Ted Gould", + "Toine de Greef", + "Michael Grosberg", + "Kris De Gussem", + "Bryce Harrington", + "Dale Harvey", + "Aurélio Adnauer Heckert", + "Carl Hetherington", + "Jos Hirth", + "Hannes Hochreiner", + "Thomas Holder", + "Joel Holdsworth", + "Christoffer Holmstedt", + "Alan Horkan", + "Karl Ove Hufthammer", + "Richard Hughes", + "Nathan Hurst", + "inductiveload", + "Thomas Ingham", + "Jean-Olivier Irisson", + "Bob Jamison", + "Ted Janeczko", + "Marc Jeanmougin", + "jEsuSdA", + "Fernando Lucchesi Bastos Jurema", + "Lauris Kaplinski", + "Lynn Kerby", + "Niko Kiirala", + "James Kilfiger", + "Nikita Kitaev", + "Jason Kivlighn", + "Adrian Knoth", + "Krzysztof Kosiński", + "Petr Kovar", + "Benoît Lavorata", + "Alex Leone", + "Julien Leray", + "Raph Levien", + "Diederik van Lierop", + "Nicklas Lindgren", + "Vitaly Lipatov", + "Ivan Louette", + "Pierre-Antoine Marc", + "Aurel-Aimé Marmion", + "Colin Marquardt", + "Craig Marshall", + "Ivan Masár", + "Dmitry G. Mastrukov", + "David Mathog", + "Matiphas", + "Michael Meeks", + "Federico Mena", + "MenTaLguY", + "Aubanel Monnier", + "Vincent Montagne", + "Tim Mooney", + "Derek P. Moore", + "Chris Morgan", + "Peter Moulder", + "Jörg Müller", + "Yukihiro Nakai", + "Victor Navez", + "Christian Neumair", + "Nick", + "Andreas Nilsson", + "Mitsuru Oka", + "Vinícius dos Santos Oliveira", + "Martin Owens", + "Alvin Penner", + "Matthew Petroff", + "Jon Phillips", + "Zdenko Podobny", + "Alexandre Prokoudine", + "Jean-René Reinhard", + "Alexey Remizov", + "Frederic Rodrigo", + "Hugo Rodrigues", + "Juarez Rudsatz", + "Xavier Conde Rueda", + "Felipe Corrêa da Silva Sanches", + "Christian Schaller", + "Marco Scholten", + "Tom von Schwerdtner", + "Danilo Šegan", + "Abhishek Sharma", + "Shivaken", + "Michael Sloan", + "John Smith", + "Sandra Snan", + "Boštjan Špetič", + "Aaron Spike", + "Kaushik Sridharan", + "Ralf Stephan", + "Dariusz Stojek", + "Martin Sucha", + "~suv", + "Pat Suwalski", + "Adib Taraben", + "Hugh Tebby", + "Jonas Termeau", + "David Turner", + "Andre Twupack", + "Aleksandar Urošević", + "Alex Valavanis", + "Joakim Verona", + "Lucas Vieites", + "Daniel Wagenaar", + "Liam P. White", + "Sebastian Wüst", + "Michael Wybrow", + "Gellule Xg", + "Daniel Yacob", + "Masatake Yamato", + "David Yip"}; + set_authors(authors); //############################## //# T R A N S L A T O R S //############################## + Glib::ustring translators_text; - translators_text = ""; - // TRANSLATORS: Put here your name (and other national contributors') // one per line in the form of: name surname (email). Use \n for newline. Glib::ustring thisTranslation = _("translator-credits"); @@ -642,697 +538,14 @@ void AboutBox::initStrings() { translators_text.append(allTranslators); - - - //############################## - //# L I C E N S E - //############################## - - /** - * This text is copied from the COPYING file - */ - license_text = - " GNU GENERAL PUBLIC LICENSE\n" - " Version 3, 29 June 2007\n" - "\n" - " Copyright (C) 2007 Free Software Foundation, Inc. \n" - " Everyone is permitted to copy and distribute verbatim copies\n" - " of this license document, but changing it is not allowed.\n" - "\n" - " Preamble\n" - "\n" - " The GNU General Public License is a free, copyleft license for\n" - "software and other kinds of works.\n" - "\n" - " The licenses for most software and other practical works are designed\n" - "to take away your freedom to share and change the works. By contrast,\n" - "the GNU General Public License is intended to guarantee your freedom to\n" - "share and change all versions of a program--to make sure it remains free\n" - "software for all its users. We, the Free Software Foundation, use the\n" - "GNU General Public License for most of our software; it applies also to\n" - "any other work released this way by its authors. You can apply it to\n" - "your programs, too.\n" - "\n" - " When we speak of free software, we are referring to freedom, not\n" - "price. Our General Public Licenses are designed to make sure that you\n" - "have the freedom to distribute copies of free software (and charge for\n" - "them if you wish), that you receive source code or can get it if you\n" - "want it, that you can change the software or use pieces of it in new\n" - "free programs, and that you know you can do these things.\n" - "\n" - " To protect your rights, we need to prevent others from denying you\n" - "these rights or asking you to surrender the rights. Therefore, you have\n" - "certain responsibilities if you distribute copies of the software, or if\n" - "you modify it: responsibilities to respect the freedom of others.\n" - "\n" - " For example, if you distribute copies of such a program, whether\n" - "gratis or for a fee, you must pass on to the recipients the same\n" - "freedoms that you received. You must make sure that they, too, receive\n" - "or can get the source code. And you must show them these terms so they\n" - "know their rights.\n" - "\n" - " Developers that use the GNU GPL protect your rights with two steps:\n" - "(1) assert copyright on the software, and (2) offer you this License\n" - "giving you legal permission to copy, distribute and/or modify it.\n" - "\n" - " For the developers' and authors' protection, the GPL clearly explains\n" - "that there is no warranty for this free software. For both users' and\n" - "authors' sake, the GPL requires that modified versions be marked as\n" - "changed, so that their problems will not be attributed erroneously to\n" - "authors of previous versions.\n" - "\n" - " Some devices are designed to deny users access to install or run\n" - "modified versions of the software inside them, although the manufacturer\n" - "can do so. This is fundamentally incompatible with the aim of\n" - "protecting users' freedom to change the software. The systematic\n" - "pattern of such abuse occurs in the area of products for individuals to\n" - "use, which is precisely where it is most unacceptable. Therefore, we\n" - "have designed this version of the GPL to prohibit the practice for those\n" - "products. If such problems arise substantially in other domains, we\n" - "stand ready to extend this provision to those domains in future versions\n" - "of the GPL, as needed to protect the freedom of users.\n" - "\n" - " Finally, every program is threatened constantly by software patents.\n" - "States should not allow patents to restrict development and use of\n" - "software on general-purpose computers, but in those that do, we wish to\n" - "avoid the special danger that patents applied to a free program could\n" - "make it effectively proprietary. To prevent this, the GPL assures that\n" - "patents cannot be used to render the program non-free.\n" - "\n" - " The precise terms and conditions for copying, distribution and\n" - "modification follow.\n" - "\n" - " TERMS AND CONDITIONS\n" - "\n" - " 0. Definitions.\n" - "\n" - " \"This License\" refers to version 3 of the GNU General Public License.\n" - "\n" - " \"Copyright\" also means copyright-like laws that apply to other kinds of\n" - "works, such as semiconductor masks.\n" - "\n" - " \"The Program\" refers to any copyrightable work licensed under this\n" - "License. Each licensee is addressed as \"you\". \"Licensees\" and\n" - "\"recipients\" may be individuals or organizations.\n" - "\n" - " To \"modify\" a work means to copy from or adapt all or part of the work\n" - "in a fashion requiring copyright permission, other than the making of an\n" - "exact copy. The resulting work is called a \"modified version\" of the\n" - "earlier work or a work \"based on\" the earlier work.\n" - "\n" - " A \"covered work\" means either the unmodified Program or a work based\n" - "on the Program.\n" - "\n" - " To \"propagate\" a work means to do anything with it that, without\n" - "permission, would make you directly or secondarily liable for\n" - "infringement under applicable copyright law, except executing it on a\n" - "computer or modifying a private copy. Propagation includes copying,\n" - "distribution (with or without modification), making available to the\n" - "public, and in some countries other activities as well.\n" - "\n" - " To \"convey\" a work means any kind of propagation that enables other\n" - "parties to make or receive copies. Mere interaction with a user through\n" - "a computer network, with no transfer of a copy, is not conveying.\n" - "\n" - " An interactive user interface displays \"Appropriate Legal Notices\"\n" - "to the extent that it includes a convenient and prominently visible\n" - "feature that (1) displays an appropriate copyright notice, and (2)\n" - "tells the user that there is no warranty for the work (except to the\n" - "extent that warranties are provided), that licensees may convey the\n" - "work under this License, and how to view a copy of this License. If\n" - "the interface presents a list of user commands or options, such as a\n" - "menu, a prominent item in the list meets this criterion.\n" - "\n" - " 1. Source Code.\n" - "\n" - " The \"source code\" for a work means the preferred form of the work\n" - "for making modifications to it. \"Object code\" means any non-source\n" - "form of a work.\n" - "\n" - " A \"Standard Interface\" means an interface that either is an official\n" - "standard defined by a recognized standards body, or, in the case of\n" - "interfaces specified for a particular programming language, one that\n" - "is widely used among developers working in that language.\n" - "\n" - " The \"System Libraries\" of an executable work include anything, other\n" - "than the work as a whole, that (a) is included in the normal form of\n" - "packaging a Major Component, but which is not part of that Major\n" - "Component, and (b) serves only to enable use of the work with that\n" - "Major Component, or to implement a Standard Interface for which an\n" - "implementation is available to the public in source code form. A\n" - "\"Major Component\", in this context, means a major essential component\n" - "(kernel, window system, and so on) of the specific operating system\n" - "(if any) on which the executable work runs, or a compiler used to\n" - "produce the work, or an object code interpreter used to run it.\n" - "\n" - " The \"Corresponding Source\" for a work in object code form means all\n" - "the source code needed to generate, install, and (for an executable\n" - "work) run the object code and to modify the work, including scripts to\n" - "control those activities. However, it does not include the work's\n" - "System Libraries, or general-purpose tools or generally available free\n" - "programs which are used unmodified in performing those activities but\n" - "which are not part of the work. For example, Corresponding Source\n" - "includes interface definition files associated with source files for\n" - "the work, and the source code for shared libraries and dynamically\n" - "linked subprograms that the work is specifically designed to require,\n" - "such as by intimate data communication or control flow between those\n" - "subprograms and other parts of the work.\n" - "\n" - " The Corresponding Source need not include anything that users\n" - "can regenerate automatically from other parts of the Corresponding\n" - "Source.\n" - "\n" - " The Corresponding Source for a work in source code form is that\n" - "same work.\n" - "\n" - " 2. Basic Permissions.\n" - "\n" - " All rights granted under this License are granted for the term of\n" - "copyright on the Program, and are irrevocable provided the stated\n" - "conditions are met. This License explicitly affirms your unlimited\n" - "permission to run the unmodified Program. The output from running a\n" - "covered work is covered by this License only if the output, given its\n" - "content, constitutes a covered work. This License acknowledges your\n" - "rights of fair use or other equivalent, as provided by copyright law.\n" - "\n" - " You may make, run and propagate covered works that you do not\n" - "convey, without conditions so long as your license otherwise remains\n" - "in force. You may convey covered works to others for the sole purpose\n" - "of having them make modifications exclusively for you, or provide you\n" - "with facilities for running those works, provided that you comply with\n" - "the terms of this License in conveying all material for which you do\n" - "not control copyright. Those thus making or running the covered works\n" - "for you must do so exclusively on your behalf, under your direction\n" - "and control, on terms that prohibit them from making any copies of\n" - "your copyrighted material outside their relationship with you.\n" - "\n" - " Conveying under any other circumstances is permitted solely under\n" - "the conditions stated below. Sublicensing is not allowed; section 10\n" - "makes it unnecessary.\n" - "\n" - " 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n" - "\n" - " No covered work shall be deemed part of an effective technological\n" - "measure under any applicable law fulfilling obligations under article\n" - "11 of the WIPO copyright treaty adopted on 20 December 1996, or\n" - "similar laws prohibiting or restricting circumvention of such\n" - "measures.\n" - "\n" - " When you convey a covered work, you waive any legal power to forbid\n" - "circumvention of technological measures to the extent such circumvention\n" - "is effected by exercising rights under this License with respect to\n" - "the covered work, and you disclaim any intention to limit operation or\n" - "modification of the work as a means of enforcing, against the work's\n" - "users, your or third parties' legal rights to forbid circumvention of\n" - "technological measures.\n" - "\n" - " 4. Conveying Verbatim Copies.\n" - "\n" - " You may convey verbatim copies of the Program's source code as you\n" - "receive it, in any medium, provided that you conspicuously and\n" - "appropriately publish on each copy an appropriate copyright notice;\n" - "keep intact all notices stating that this License and any\n" - "non-permissive terms added in accord with section 7 apply to the code;\n" - "keep intact all notices of the absence of any warranty; and give all\n" - "recipients a copy of this License along with the Program.\n" - "\n" - " You may charge any price or no price for each copy that you convey,\n" - "and you may offer support or warranty protection for a fee.\n" - "\n" - " 5. Conveying Modified Source Versions.\n" - "\n" - " You may convey a work based on the Program, or the modifications to\n" - "produce it from the Program, in the form of source code under the\n" - "terms of section 4, provided that you also meet all of these conditions:\n" - "\n" - " a) The work must carry prominent notices stating that you modified\n" - " it, and giving a relevant date.\n" - "\n" - " b) The work must carry prominent notices stating that it is\n" - " released under this License and any conditions added under section\n" - " 7. This requirement modifies the requirement in section 4 to\n" - " \"keep intact all notices\".\n" - "\n" - " c) You must license the entire work, as a whole, under this\n" - " License to anyone who comes into possession of a copy. This\n" - " License will therefore apply, along with any applicable section 7\n" - " additional terms, to the whole of the work, and all its parts,\n" - " regardless of how they are packaged. This License gives no\n" - " permission to license the work in any other way, but it does not\n" - " invalidate such permission if you have separately received it.\n" - "\n" - " d) If the work has interactive user interfaces, each must display\n" - " Appropriate Legal Notices; however, if the Program has interactive\n" - " interfaces that do not display Appropriate Legal Notices, your\n" - " work need not make them do so.\n" - "\n" - " A compilation of a covered work with other separate and independent\n" - "works, which are not by their nature extensions of the covered work,\n" - "and which are not combined with it such as to form a larger program,\n" - "in or on a volume of a storage or distribution medium, is called an\n" - "\"aggregate\" if the compilation and its resulting copyright are not\n" - "used to limit the access or legal rights of the compilation's users\n" - "beyond what the individual works permit. Inclusion of a covered work\n" - "in an aggregate does not cause this License to apply to the other\n" - "parts of the aggregate.\n" - "\n" - " 6. Conveying Non-Source Forms.\n" - "\n" - " You may convey a covered work in object code form under the terms\n" - "of sections 4 and 5, provided that you also convey the\n" - "machine-readable Corresponding Source under the terms of this License,\n" - "in one of these ways:\n" - "\n" - " a) Convey the object code in, or embodied in, a physical product\n" - " (including a physical distribution medium), accompanied by the\n" - " Corresponding Source fixed on a durable physical medium\n" - " customarily used for software interchange.\n" - "\n" - " b) Convey the object code in, or embodied in, a physical product\n" - " (including a physical distribution medium), accompanied by a\n" - " written offer, valid for at least three years and valid for as\n" - " long as you offer spare parts or customer support for that product\n" - " model, to give anyone who possesses the object code either (1) a\n" - " copy of the Corresponding Source for all the software in the\n" - " product that is covered by this License, on a durable physical\n" - " medium customarily used for software interchange, for a price no\n" - " more than your reasonable cost of physically performing this\n" - " conveying of source, or (2) access to copy the\n" - " Corresponding Source from a network server at no charge.\n" - "\n" - " c) Convey individual copies of the object code with a copy of the\n" - " written offer to provide the Corresponding Source. This\n" - " alternative is allowed only occasionally and noncommercially, and\n" - " only if you received the object code with such an offer, in accord\n" - " with subsection 6b.\n" - "\n" - " d) Convey the object code by offering access from a designated\n" - " place (gratis or for a charge), and offer equivalent access to the\n" - " Corresponding Source in the same way through the same place at no\n" - " further charge. You need not require recipients to copy the\n" - " Corresponding Source along with the object code. If the place to\n" - " copy the object code is a network server, the Corresponding Source\n" - " may be on a different server (operated by you or a third party)\n" - " that supports equivalent copying facilities, provided you maintain\n" - " clear directions next to the object code saying where to find the\n" - " Corresponding Source. Regardless of what server hosts the\n" - " Corresponding Source, you remain obligated to ensure that it is\n" - " available for as long as needed to satisfy these requirements.\n" - "\n" - " e) Convey the object code using peer-to-peer transmission, provided\n" - " you inform other peers where the object code and Corresponding\n" - " Source of the work are being offered to the general public at no\n" - " charge under subsection 6d.\n" - "\n" - " A separable portion of the object code, whose source code is excluded\n" - "from the Corresponding Source as a System Library, need not be\n" - "included in conveying the object code work.\n" - "\n" - " A \"User Product\" is either (1) a \"consumer product\", which means any\n" - "tangible personal property which is normally used for personal, family,\n" - "or household purposes, or (2) anything designed or sold for incorporation\n" - "into a dwelling. In determining whether a product is a consumer product,\n" - "doubtful cases shall be resolved in favor of coverage. For a particular\n" - "product received by a particular user, \"normally used\" refers to a\n" - "typical or common use of that class of product, regardless of the status\n" - "of the particular user or of the way in which the particular user\n" - "actually uses, or expects or is expected to use, the product. A product\n" - "is a consumer product regardless of whether the product has substantial\n" - "commercial, industrial or non-consumer uses, unless such uses represent\n" - "the only significant mode of use of the product.\n" - "\n" - " \"Installation Information\" for a User Product means any methods,\n" - "procedures, authorization keys, or other information required to install\n" - "and execute modified versions of a covered work in that User Product from\n" - "a modified version of its Corresponding Source. The information must\n" - "suffice to ensure that the continued functioning of the modified object\n" - "code is in no case prevented or interfered with solely because\n" - "modification has been made.\n" - "\n" - " If you convey an object code work under this section in, or with, or\n" - "specifically for use in, a User Product, and the conveying occurs as\n" - "part of a transaction in which the right of possession and use of the\n" - "User Product is transferred to the recipient in perpetuity or for a\n" - "fixed term (regardless of how the transaction is characterized), the\n" - "Corresponding Source conveyed under this section must be accompanied\n" - "by the Installation Information. But this requirement does not apply\n" - "if neither you nor any third party retains the ability to install\n" - "modified object code on the User Product (for example, the work has\n" - "been installed in ROM).\n" - "\n" - " The requirement to provide Installation Information does not include a\n" - "requirement to continue to provide support service, warranty, or updates\n" - "for a work that has been modified or installed by the recipient, or for\n" - "the User Product in which it has been modified or installed. Access to a\n" - "network may be denied when the modification itself materially and\n" - "adversely affects the operation of the network or violates the rules and\n" - "protocols for communication across the network.\n" - "\n" - " Corresponding Source conveyed, and Installation Information provided,\n" - "in accord with this section must be in a format that is publicly\n" - "documented (and with an implementation available to the public in\n" - "source code form), and must require no special password or key for\n" - "unpacking, reading or copying.\n" - "\n" - " 7. Additional Terms.\n" - "\n" - " \"Additional permissions\" are terms that supplement the terms of this\n" - "License by making exceptions from one or more of its conditions.\n" - "Additional permissions that are applicable to the entire Program shall\n" - "be treated as though they were included in this License, to the extent\n" - "that they are valid under applicable law. If additional permissions\n" - "apply only to part of the Program, that part may be used separately\n" - "under those permissions, but the entire Program remains governed by\n" - "this License without regard to the additional permissions.\n" - "\n" - " When you convey a copy of a covered work, you may at your option\n" - "remove any additional permissions from that copy, or from any part of\n" - "it. (Additional permissions may be written to require their own\n" - "removal in certain cases when you modify the work.) You may place\n" - "additional permissions on material, added by you to a covered work,\n" - "for which you have or can give appropriate copyright permission.\n" - "\n" - " Notwithstanding any other provision of this License, for material you\n" - "add to a covered work, you may (if authorized by the copyright holders of\n" - "that material) supplement the terms of this License with terms:\n" - "\n" - " a) Disclaiming warranty or limiting liability differently from the\n" - " terms of sections 15 and 16 of this License; or\n" - "\n" - " b) Requiring preservation of specified reasonable legal notices or\n" - " author attributions in that material or in the Appropriate Legal\n" - " Notices displayed by works containing it; or\n" - "\n" - " c) Prohibiting misrepresentation of the origin of that material, or\n" - " requiring that modified versions of such material be marked in\n" - " reasonable ways as different from the original version; or\n" - "\n" - " d) Limiting the use for publicity purposes of names of licensors or\n" - " authors of the material; or\n" - "\n" - " e) Declining to grant rights under trademark law for use of some\n" - " trade names, trademarks, or service marks; or\n" - "\n" - " f) Requiring indemnification of licensors and authors of that\n" - " material by anyone who conveys the material (or modified versions of\n" - " it) with contractual assumptions of liability to the recipient, for\n" - " any liability that these contractual assumptions directly impose on\n" - " those licensors and authors.\n" - "\n" - " All other non-permissive additional terms are considered \"further\n" - "restrictions\" within the meaning of section 10. If the Program as you\n" - "received it, or any part of it, contains a notice stating that it is\n" - "governed by this License along with a term that is a further\n" - "restriction, you may remove that term. If a license document contains\n" - "a further restriction but permits relicensing or conveying under this\n" - "License, you may add to a covered work material governed by the terms\n" - "of that license document, provided that the further restriction does\n" - "not survive such relicensing or conveying.\n" - "\n" - " If you add terms to a covered work in accord with this section, you\n" - "must place, in the relevant source files, a statement of the\n" - "additional terms that apply to those files, or a notice indicating\n" - "where to find the applicable terms.\n" - "\n" - " Additional terms, permissive or non-permissive, may be stated in the\n" - "form of a separately written license, or stated as exceptions;\n" - "the above requirements apply either way.\n" - "\n" - " 8. Termination.\n" - "\n" - " You may not propagate or modify a covered work except as expressly\n" - "provided under this License. Any attempt otherwise to propagate or\n" - "modify it is void, and will automatically terminate your rights under\n" - "this License (including any patent licenses granted under the third\n" - "paragraph of section 11).\n" - "\n" - " However, if you cease all violation of this License, then your\n" - "license from a particular copyright holder is reinstated (a)\n" - "provisionally, unless and until the copyright holder explicitly and\n" - "finally terminates your license, and (b) permanently, if the copyright\n" - "holder fails to notify you of the violation by some reasonable means\n" - "prior to 60 days after the cessation.\n" - "\n" - " Moreover, your license from a particular copyright holder is\n" - "reinstated permanently if the copyright holder notifies you of the\n" - "violation by some reasonable means, this is the first time you have\n" - "received notice of violation of this License (for any work) from that\n" - "copyright holder, and you cure the violation prior to 30 days after\n" - "your receipt of the notice.\n" - "\n" - " Termination of your rights under this section does not terminate the\n" - "licenses of parties who have received copies or rights from you under\n" - "this License. If your rights have been terminated and not permanently\n" - "reinstated, you do not qualify to receive new licenses for the same\n" - "material under section 10.\n" - "\n" - " 9. Acceptance Not Required for Having Copies.\n" - "\n" - " You are not required to accept this License in order to receive or\n" - "run a copy of the Program. Ancillary propagation of a covered work\n" - "occurring solely as a consequence of using peer-to-peer transmission\n" - "to receive a copy likewise does not require acceptance. However,\n" - "nothing other than this License grants you permission to propagate or\n" - "modify any covered work. These actions infringe copyright if you do\n" - "not accept this License. Therefore, by modifying or propagating a\n" - "covered work, you indicate your acceptance of this License to do so.\n" - "\n" - " 10. Automatic Licensing of Downstream Recipients.\n" - "\n" - " Each time you convey a covered work, the recipient automatically\n" - "receives a license from the original licensors, to run, modify and\n" - "propagate that work, subject to this License. You are not responsible\n" - "for enforcing compliance by third parties with this License.\n" - "\n" - " An \"entity transaction\" is a transaction transferring control of an\n" - "organization, or substantially all assets of one, or subdividing an\n" - "organization, or merging organizations. If propagation of a covered\n" - "work results from an entity transaction, each party to that\n" - "transaction who receives a copy of the work also receives whatever\n" - "licenses to the work the party's predecessor in interest had or could\n" - "give under the previous paragraph, plus a right to possession of the\n" - "Corresponding Source of the work from the predecessor in interest, if\n" - "the predecessor has it or can get it with reasonable efforts.\n" - "\n" - " You may not impose any further restrictions on the exercise of the\n" - "rights granted or affirmed under this License. For example, you may\n" - "not impose a license fee, royalty, or other charge for exercise of\n" - "rights granted under this License, and you may not initiate litigation\n" - "(including a cross-claim or counterclaim in a lawsuit) alleging that\n" - "any patent claim is infringed by making, using, selling, offering for\n" - "sale, or importing the Program or any portion of it.\n" - "\n" - " 11. Patents.\n" - "\n" - " A \"contributor\" is a copyright holder who authorizes use under this\n" - "License of the Program or a work on which the Program is based. The\n" - "work thus licensed is called the contributor's \"contributor version\".\n" - "\n" - " A contributor's \"essential patent claims\" are all patent claims\n" - "owned or controlled by the contributor, whether already acquired or\n" - "hereafter acquired, that would be infringed by some manner, permitted\n" - "by this License, of making, using, or selling its contributor version,\n" - "but do not include claims that would be infringed only as a\n" - "consequence of further modification of the contributor version. For\n" - "purposes of this definition, \"control\" includes the right to grant\n" - "patent sublicenses in a manner consistent with the requirements of\n" - "this License.\n" - "\n" - " Each contributor grants you a non-exclusive, worldwide, royalty-free\n" - "patent license under the contributor's essential patent claims, to\n" - "make, use, sell, offer for sale, import and otherwise run, modify and\n" - "propagate the contents of its contributor version.\n" - "\n" - " In the following three paragraphs, a \"patent license\" is any express\n" - "agreement or commitment, however denominated, not to enforce a patent\n" - "(such as an express permission to practice a patent or covenant not to\n" - "sue for patent infringement). To \"grant\" such a patent license to a\n" - "party means to make such an agreement or commitment not to enforce a\n" - "patent against the party.\n" - "\n" - " If you convey a covered work, knowingly relying on a patent license,\n" - "and the Corresponding Source of the work is not available for anyone\n" - "to copy, free of charge and under the terms of this License, through a\n" - "publicly available network server or other readily accessible means,\n" - "then you must either (1) cause the Corresponding Source to be so\n" - "available, or (2) arrange to deprive yourself of the benefit of the\n" - "patent license for this particular work, or (3) arrange, in a manner\n" - "consistent with the requirements of this License, to extend the patent\n" - "license to downstream recipients. \"Knowingly relying\" means you have\n" - "actual knowledge that, but for the patent license, your conveying the\n" - "covered work in a country, or your recipient's use of the covered work\n" - "in a country, would infringe one or more identifiable patents in that\n" - "country that you have reason to believe are valid.\n" - "\n" - " If, pursuant to or in connection with a single transaction or\n" - "arrangement, you convey, or propagate by procuring conveyance of, a\n" - "covered work, and grant a patent license to some of the parties\n" - "receiving the covered work authorizing them to use, propagate, modify\n" - "or convey a specific copy of the covered work, then the patent license\n" - "you grant is automatically extended to all recipients of the covered\n" - "work and works based on it.\n" - "\n" - " A patent license is \"discriminatory\" if it does not include within\n" - "the scope of its coverage, prohibits the exercise of, or is\n" - "conditioned on the non-exercise of one or more of the rights that are\n" - "specifically granted under this License. You may not convey a covered\n" - "work if you are a party to an arrangement with a third party that is\n" - "in the business of distributing software, under which you make payment\n" - "to the third party based on the extent of your activity of conveying\n" - "the work, and under which the third party grants, to any of the\n" - "parties who would receive the covered work from you, a discriminatory\n" - "patent license (a) in connection with copies of the covered work\n" - "conveyed by you (or copies made from those copies), or (b) primarily\n" - "for and in connection with specific products or compilations that\n" - "contain the covered work, unless you entered into that arrangement,\n" - "or that patent license was granted, prior to 28 March 2007.\n" - "\n" - " Nothing in this License shall be construed as excluding or limiting\n" - "any implied license or other defenses to infringement that may\n" - "otherwise be available to you under applicable patent law.\n" - "\n" - " 12. No Surrender of Others' Freedom.\n" - "\n" - " If conditions are imposed on you (whether by court order, agreement or\n" - "otherwise) that contradict the conditions of this License, they do not\n" - "excuse you from the conditions of this License. If you cannot convey a\n" - "covered work so as to satisfy simultaneously your obligations under this\n" - "License and any other pertinent obligations, then as a consequence you may\n" - "not convey it at all. For example, if you agree to terms that obligate you\n" - "to collect a royalty for further conveying from those to whom you convey\n" - "the Program, the only way you could satisfy both those terms and this\n" - "License would be to refrain entirely from conveying the Program.\n" - "\n" - " 13. Use with the GNU Affero General Public License.\n" - "\n" - " Notwithstanding any other provision of this License, you have\n" - "permission to link or combine any covered work with a work licensed\n" - "under version 3 of the GNU Affero General Public License into a single\n" - "combined work, and to convey the resulting work. The terms of this\n" - "License will continue to apply to the part which is the covered work,\n" - "but the special requirements of the GNU Affero General Public License,\n" - "section 13, concerning interaction through a network will apply to the\n" - "combination as such.\n" - "\n" - " 14. Revised Versions of this License.\n" - "\n" - " The Free Software Foundation may publish revised and/or new versions of\n" - "the GNU General Public License from time to time. Such new versions will\n" - "be similar in spirit to the present version, but may differ in detail to\n" - "address new problems or concerns.\n" - "\n" - " Each version is given a distinguishing version number. If the\n" - "Program specifies that a certain numbered version of the GNU General\n" - "Public License \"or any later version\" applies to it, you have the\n" - "option of following the terms and conditions either of that numbered\n" - "version or of any later version published by the Free Software\n" - "Foundation. If the Program does not specify a version number of the\n" - "GNU General Public License, you may choose any version ever published\n" - "by the Free Software Foundation.\n" - "\n" - " If the Program specifies that a proxy can decide which future\n" - "versions of the GNU General Public License can be used, that proxy's\n" - "public statement of acceptance of a version permanently authorizes you\n" - "to choose that version for the Program.\n" - "\n" - " Later license versions may give you additional or different\n" - "permissions. However, no additional obligations are imposed on any\n" - "author or copyright holder as a result of your choosing to follow a\n" - "later version.\n" - "\n" - " 15. Disclaimer of Warranty.\n" - "\n" - " THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n" - "APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n" - "HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n" - "OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n" - "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n" - "PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n" - "IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n" - "ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n" - "\n" - " 16. Limitation of Liability.\n" - "\n" - " IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" - "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n" - "THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n" - "GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n" - "USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n" - "DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n" - "PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n" - "EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n" - "SUCH DAMAGES.\n" - "\n" - " 17. Interpretation of Sections 15 and 16.\n" - "\n" - " If the disclaimer of warranty and limitation of liability provided\n" - "above cannot be given local legal effect according to their terms,\n" - "reviewing courts shall apply local law that most closely approximates\n" - "an absolute waiver of all civil liability in connection with the\n" - "Program, unless a warranty or assumption of liability accompanies a\n" - "copy of the Program in return for a fee.\n" - "\n" - " END OF TERMS AND CONDITIONS\n" - "\n" - " How to Apply These Terms to Your New Programs\n" - "\n" - " If you develop a new program, and you want it to be of the greatest\n" - "possible use to the public, the best way to achieve this is to make it\n" - "free software which everyone can redistribute and change under these terms.\n" - "\n" - " To do so, attach the following notices to the program. It is safest\n" - "to attach them to the start of each source file to most effectively\n" - "state the exclusion of warranty; and each file should have at least\n" - "the \"copyright\" line and a pointer to where the full notice is found.\n" - "\n" - " \n" - " Copyright (C) \n" - "\n" - " This program is free software: you can redistribute it and/or modify\n" - " it under the terms of the GNU General Public License as published by\n" - " the Free Software Foundation, either version 3 of the License, or\n" - " (at your option) any later version.\n" - "\n" - " This program is distributed in the hope that it will be useful,\n" - " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - " GNU General Public License for more details.\n" - "\n" - " You should have received a copy of the GNU General Public License\n" - " along with this program. If not, see .\n" - "\n" - "Also add information on how to contact you by electronic and paper mail.\n" - "\n" - " If the program does terminal interaction, make it output a short\n" - "notice like this when it starts in an interactive mode:\n" - "\n" - " Copyright (C) \n" - " This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" - " This is free software, and you are welcome to redistribute it\n" - " under certain conditions; type `show c' for details.\n" - "\n" - "The hypothetical commands `show w' and `show c' should show the appropriate\n" - "parts of the General Public License. Of course, your program's commands\n" - "might be different; for a GUI interface, you would use an \"about box\".\n" - "\n" - " You should also get your employer (if you work as a programmer) or school,\n" - "if any, to sign a \"copyright disclaimer\" for the program, if necessary.\n" - "For more information on this, and how to apply and follow the GNU GPL, see\n" - ".\n" - "\n" - " The GNU General Public License does not permit incorporating your program\n" - "into proprietary programs. If your program is a subroutine library, you\n" - "may consider it more useful to permit linking proprietary applications with\n" - "the library. If this is what you want to do, use the GNU Lesser General\n" - "Public License instead of this License. But first, please read\n" - "." - ; - + set_translator_credits(translators_text); + set_license("GPL 3.0 or later"); // Overriden in next line + set_license_type(Gtk::LICENSE_GPL_3_0); } - - - +void AboutBox::on_response(int response_id) { + hide(); +} } // namespace Dialog } // namespace UI } // namespace Inkscape diff --git a/src/ui/dialog/aboutbox.h b/src/ui/dialog/aboutbox.h index f3234b88d..1611587a1 100644 --- a/src/ui/dialog/aboutbox.h +++ b/src/ui/dialog/aboutbox.h @@ -15,13 +15,13 @@ #ifndef INKSCAPE_UI_DIALOG_ABOUTBOX_H #define INKSCAPE_UI_DIALOG_ABOUTBOX_H -#include +#include namespace Inkscape { namespace UI { namespace Dialog { -class AboutBox : public Gtk::Dialog { +class AboutBox : public Gtk::AboutDialog { public: @@ -33,12 +33,7 @@ private: AboutBox(); void initStrings(); - - Glib::ustring authors_text; - Glib::ustring translators_text; - Glib::ustring license_text; - - virtual void on_response(int response_id); + void on_response(int response_id) override; }; } // namespace Dialog -- cgit v1.2.3 From 2c640d14add80591992857b5a49d992763f9c494 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 14:39:38 +0100 Subject: Install AUTHORS & TRANSLATORS files and auto-generate credits in AboutBox --- CMakeLists.txt | 4 + src/path-prefix.h | 4 + src/ui/dialog/aboutbox.cpp | 386 +++------------------------------------------ 3 files changed, 33 insertions(+), 361 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b643b2b6..12f21694a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,6 +235,10 @@ canonicalize_flags_var("${CMAKE_CXX_FLAGS}" _new_cxx) set(CMAKE_CXX_FLAGS "${_new_cxx}" CACHE STRING "" FORCE) # message(FATAL_ERROR "CMAKE_CXX_FLAGS = <${CMAKE_CXX_FLAGS}>") +install(FILES + AUTHORS + TRANSLATORS + DESTINATION ${INKSCAPE_SHARE_INSTALL}/doc) # ---------------------------------------------------------------------- # Information Summary diff --git a/src/path-prefix.h b/src/path-prefix.h index 1c17ce2d8..96999b3cb 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -31,6 +31,7 @@ # define INKSCAPE_APPICONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/pixmaps" ) # define INKSCAPE_ATTRRELDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/attributes" ) # define INKSCAPE_BINDDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/bind" ) +# define INKSCAPE_DOCDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/doc" ) # define INKSCAPE_EXAMPLESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/examples" ) # define INKSCAPE_EXTENSIONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/extensions" ) # define INKSCAPE_FILTERDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/filters" ) @@ -55,6 +56,7 @@ # define INKSCAPE_APPICONDIR WIN32_DATADIR("pixmaps") # define INKSCAPE_ATTRRELDIR WIN32_DATADIR("attributes") # define INKSCAPE_BINDDIR WIN32_DATADIR("bind") +# define INKSCAPE_DOCDIR WIN32_DATADIR("doc") # define INKSCAPE_EXAMPLESDIR WIN32_DATADIR("examples") # define INKSCAPE_EXTENSIONDIR WIN32_DATADIR("extensions") # define INKSCAPE_FILTERDIR WIN32_DATADIR("filters") @@ -78,6 +80,7 @@ # define INKSCAPE_APPICONDIR "Contents/Resources/share/pixmaps" # define INKSCAPE_ATTRRELDIR "Contents/Resources/share/inkscape/attributes" # define INKSCAPE_BINDDIR "Contents/Resources/share/inkscape/bind" +# define INKSCAPE_DOCDIR "Contents/Resources/share/inkscape/doc" # define INKSCAPE_EXAMPLESDIR "Contents/Resources/share/inkscape/examples" # define INKSCAPE_EXTENSIONDIR "Contents/Resources/share/inkscape/extensions" # define INKSCAPE_FILTERDIR "Contents/Resources/share/inkscape/filters" @@ -101,6 +104,7 @@ # define INKSCAPE_APPICONDIR INKSCAPE_DATADIR "/pixmaps" # define INKSCAPE_ATTRRELDIR INKSCAPE_DATADIR "/inkscape/attributes" # define INKSCAPE_BINDDIR INKSCAPE_DATADIR "/inkscape/bind" +# define INKSCAPE_DOCDIR INKSCAPE_DATADIR "/inkscape/doc" # define INKSCAPE_EXAMPLESDIR INKSCAPE_DATADIR "/inkscape/examples" # define INKSCAPE_EXTENSIONDIR INKSCAPE_DATADIR "/inkscape/extensions" # define INKSCAPE_FILTERDIR INKSCAPE_DATADIR "/inkscape/filters" diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index c95f84f8e..652ebd411 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -23,6 +23,8 @@ #include "ui/dialog/aboutbox.h" +#include + #include #include #include @@ -146,201 +148,26 @@ Gtk::Widget *build_splash_widget() { * used for making widgets */ void AboutBox::initStrings() { - //############################## //# A U T H O R S //############################## - - /* This text is copied from the AUTHORS file. - * To update it, execute this snippet of sed magic in the toplevel - * source directory: - * - * sed -e 's/^\(.*\) \([^ ]*\)*$/\2_ \1/' AUTHORS - | sort - | sed -e 's/^\([^_]*\)_ \(.*\)$/\2 \1/;s/^.*$/"\0\\n"/;$s/\\n//' - | zenity --text-info - * - * and paste the result from the combo box here. - */ - std::vector authors = { - "Maximilian Albert", - "Joshua A. Andler", - "Tavmjong Bah", - "Pierre Barbry-Blot", - "Jean-François Barraud", - "Campbell Barton", - "Bill Baxter", - "John Beard", - "John Bintz", - "Arpad Biro", - "Nicholas Bishop", - "Joshua L. Blocher", - "Hanno Böck", - "Tomasz Boczkowski", - "Adrian Boguszewski", - "Henrik Bohre", - "Boldewyn", - "Daniel Borgmann", - "Bastien Bouclet", - "Hans Breuer", - "Gustav Broberg", - "Christopher Brown", - "Marcus Brubaker", - "Luca Bruno", - "Brynn (brynn@inkscapecommunity.com)", - "Nicu Buculei", - "Bulia Byak", - "Pierre Caclin", - "Ian Caldwell", - "Gail Carmichael", - "Ed Catmur", - "Chema Celorio", - "Jabiertxo Arraiza Cenoz", - "Johan Ceuppens", - "Zbigniew Chyla", - "Alexander Clausen", - "John Cliff", - "Kees Cook", - "Ben Cromwell", - "Robert Crosbie", - "Jon Cruz", - "Aurélie De-Cooman", - "Milosz Derezynski", - "Daniel Díaz", - "Bruno Dilly", - "Larry Doolittle", - "Nicolas Dufour", - "Tim Dwyer", - "Maxim V. Dziumanenko", - "Moritz Eberl", - "Johan Engelen", - "Miklos Erdelyi", - "Ulf Erikson", - "Noé Falzon", - "Sebastian Faubel", - "Frank Felfe", - "Andrew Fitzsimon", - "Edward Flick", - "Marcin Floryan", - "Ben Fowler", - "Fred", - "Cedric Gemy", - "Steren Giannini", - "Olivier Gondouin", - "Ted Gould", - "Toine de Greef", - "Michael Grosberg", - "Kris De Gussem", - "Bryce Harrington", - "Dale Harvey", - "Aurélio Adnauer Heckert", - "Carl Hetherington", - "Jos Hirth", - "Hannes Hochreiner", - "Thomas Holder", - "Joel Holdsworth", - "Christoffer Holmstedt", - "Alan Horkan", - "Karl Ove Hufthammer", - "Richard Hughes", - "Nathan Hurst", - "inductiveload", - "Thomas Ingham", - "Jean-Olivier Irisson", - "Bob Jamison", - "Ted Janeczko", - "Marc Jeanmougin", - "jEsuSdA", - "Fernando Lucchesi Bastos Jurema", - "Lauris Kaplinski", - "Lynn Kerby", - "Niko Kiirala", - "James Kilfiger", - "Nikita Kitaev", - "Jason Kivlighn", - "Adrian Knoth", - "Krzysztof Kosiński", - "Petr Kovar", - "Benoît Lavorata", - "Alex Leone", - "Julien Leray", - "Raph Levien", - "Diederik van Lierop", - "Nicklas Lindgren", - "Vitaly Lipatov", - "Ivan Louette", - "Pierre-Antoine Marc", - "Aurel-Aimé Marmion", - "Colin Marquardt", - "Craig Marshall", - "Ivan Masár", - "Dmitry G. Mastrukov", - "David Mathog", - "Matiphas", - "Michael Meeks", - "Federico Mena", - "MenTaLguY", - "Aubanel Monnier", - "Vincent Montagne", - "Tim Mooney", - "Derek P. Moore", - "Chris Morgan", - "Peter Moulder", - "Jörg Müller", - "Yukihiro Nakai", - "Victor Navez", - "Christian Neumair", - "Nick", - "Andreas Nilsson", - "Mitsuru Oka", - "Vinícius dos Santos Oliveira", - "Martin Owens", - "Alvin Penner", - "Matthew Petroff", - "Jon Phillips", - "Zdenko Podobny", - "Alexandre Prokoudine", - "Jean-René Reinhard", - "Alexey Remizov", - "Frederic Rodrigo", - "Hugo Rodrigues", - "Juarez Rudsatz", - "Xavier Conde Rueda", - "Felipe Corrêa da Silva Sanches", - "Christian Schaller", - "Marco Scholten", - "Tom von Schwerdtner", - "Danilo Šegan", - "Abhishek Sharma", - "Shivaken", - "Michael Sloan", - "John Smith", - "Sandra Snan", - "Boštjan Špetič", - "Aaron Spike", - "Kaushik Sridharan", - "Ralf Stephan", - "Dariusz Stojek", - "Martin Sucha", - "~suv", - "Pat Suwalski", - "Adib Taraben", - "Hugh Tebby", - "Jonas Termeau", - "David Turner", - "Andre Twupack", - "Aleksandar Urošević", - "Alex Valavanis", - "Joakim Verona", - "Lucas Vieites", - "Daniel Wagenaar", - "Liam P. White", - "Sebastian Wüst", - "Michael Wybrow", - "Gellule Xg", - "Daniel Yacob", - "Masatake Yamato", - "David Yip"}; + + // Create an empty vector to store the list of authors + std::vector authors; + + // Try to copy the list of authors from the "AUTHORS" file, which + // should have been installed into the share/doc directory + auto authors_filename = Glib::build_filename(INKSCAPE_DOCDIR, "AUTHORS"); + std::ifstream authors_filestream(authors_filename); + if(authors_filestream) { + std::string author_line; + + while (std::getline(authors_filestream, author_line)) { + authors.push_back(author_line); + } + } + + // Set the author credits in this dialog, using the author list set_authors(authors); //############################## @@ -368,175 +195,12 @@ void AboutBox::initStrings() { translators_text.append("\n\n\n"); } - /* This text is copied from the TRANSLATORS file. - * To update it, execute this snippet of sed magic in the toplevel - * source directory: - * - * sed -e 's/^\(.*\) \([^ ]*\)*$/\2_ \1/' TRANSLATORS - | sed -e 's/^\([^_]*\)_ \(.*\)$/\2 \1/;s/^.*$/"\0\\n"/;$s/\\n//' - | zenity --text-info - * - * and paste the result from the combo box here. - */ - gchar const *allTranslators = -"3ARRANO.com <3arrano@3arrano.com>, 2005.\n" -"Adib Taraben , 2004-2014.\n" -"Alan Monfort , 2009-2010.\n" -"Alastair McKinstry , 2000.\n" -"Aleksandar Marković , 2015.\n" -"Aleksandar Urošević , 2004-2009.\n" -"Alessio Frusciante , 2002, 2003.\n" -"Alexander Shopov , 2006.\n" -"Alexandre Prokoudine , 2005, 2010-2014.\n" -"Alexey Remizov , 2004.\n" -"Ali Ghanavatian , 2010.\n" -"Álvaro Lopes , 2001, 2002.\n" -"Andreas Hyden , 2000.\n" -"Andrius Ramanauskas , 2006.\n" -"Antonio Codazzi , 2006, 2007.\n" -"Antônio Cláudio (LedStyle) , 2006.\n" -"Amanpreet Singh Brar Alamwalia , 2005.\n" -"Arman Aksoy , 2003.\n" -"Arpad Biro , 2004, 2005.\n" -"Benedikt Roth , 2000.\n" -"Benjamin Weis , 2014.\n" -"Benno Schulenberg , 2008.\n" -"Boštjan Špetič , 2004, 2005.\n" -"Brisa Francesco , 2000.\n" -"Bruce Cowan , 2010.\n" -"bulia byak , 2004.\n" -"Chris jia , 2006.\n" -"Christian Meyer , 2000-2002.\n" -"Christian Neumair , 2002, 2003.\n" -"Christian Rose , 2000-2003.\n" -"Cristian Secară , 2010-2013.\n" -"Christophe Merlet (RedFox) , 2000-2002.\n" -"Clytie Siddall , 2004-2008.\n" -"Colin Marquardt , 2004-2006.\n" -"Cédric Gemy , 2006.\n" -"Daniel Díaz , 2004.\n" -"Didier Conchaudron , 2003.\n" -"Dimitris Spingos (Δημήτρης Σπίγγος) , 2011-2015.\n" -"Dorji Tashi , 2006.\n" -"Duarte Loreto 2002, 2003 (Maintainer).\n" -"Elias Norberg , 2009.\n" -"Equipe de Tradução Inkscape Brasil , 2007.\n" -"Fatih Demir , 2000.\n" -"Firas Hanife , 2014-2016.\n" -"Foppe Benedictus , 2007-2009.\n" -"Francesc Dorca , 2003. Traducció sodipodi.\n" -"Francisco Javier F. Serrador , 2003.\n" -"Francisco Xosé Vázquez Grandal , 2001.\n" -"Frederic Rodrigo , 2004-2005.\n" -"Ganesh Murmu , 2014.\n" -"Ge'ez Frontier Foundation , 2002.\n" -"George Boukeas , 2011.\n" -"Heiko Wöhrle , 2014.\n" -"Hleb Valoshka <375gnu@gmail.com>, 2008-2009.\n" -"Hizkuntza Politikarako Sailburuordetza , 2005.\n" -"Ilia Penev , 2006.\n" -"Ivan Masár , 2006-2014. \n" -"Ivan Řihošek , 2014.\n" -"Iñaki Larrañaga , 2006.\n" -"Jānis Eisaks , 2012-2014.\n" -"Jeffrey Steve Borbón Sanabria , 2005.\n" -"Jesper Öqvist , 2010, 2011.\n" -"Joaquim Perez i Noguer , 2008-2009.\n" -"Jörg Müller , 2005.\n" -"Jeroen van der Vegt , 2003, 2005, 2008.\n" -"Jin-Hwan Jeong , 2009.\n" -"Jonathan Ernst , 2006.\n" -"Jordi Mas i Hernàndez , 2015.\n" -"Jose Antonio Salgueiro Aquino , 2003.\n" -"Josef Vybiral , 2005-2006.\n" -"Juarez Rudsatz , 2004.\n" -"Junichi Uekawa , 2002.\n" -"Jurmey Rabgay , 2006.\n" -"Kai Lahmann , 2000.\n" -"Karl Ove Hufthammer , 2004, 2005.\n" -"KATSURAGAWA Naoki , 2006.\n" -"Keld Simonsen , 2000, 2001.\n" -"Kenji Inoue , 2006-2007.\n" -"Khandakar Mujahidul Islam , 2006.\n" -"Kingsley Turner , 2006.\n" -"Kitae , 2006.\n" -"Kjartan Maraas , 2000-2002.\n" -"Kris De Gussem , 2008-2015.\n" -"Lauris Kaplinski , 2000.\n" -"Leandro Regueiro , 2006-2008, 2010.\n" -"Liu Xiaoqin , 2008.\n" -"Louni Kandulna , 2014.\n" -"Luca Bruno , 2005.\n" -"Lucas Vieites Fariña, 2003-2013.\n" -"Mahesh subedi , 2006.\n" -"Marcin Floryan , 2016.\n" -"Maren Hachmann , 2015-2016.\n" -"Martin Srebotnjak, , 2005, 2010.\n" -"Masatake YAMATO , 2002.\n" -"Masato Hashimoto , 2009-2014.\n" -"Matiphas , 2004-2006.\n" -"Mattias Hultgren , 2005, 2006.\n" -"Maxim Dziumanenko , 2004.\n" -"Mətin Əmirov , 2003.\n" -"Mitsuru Oka , 2002.\n" -"Morphix User , 2006.\n" -"Mufit Eribol , 2000.\n" -"Muhammad Bashir Al-Noimi , 2008.\n" -"Myckel Habets , 2008.\n" -"Nasreen , 2013.\n" -"Nguyen Dinh Trung , 2007, 2008.\n" -"Nicolas Dufour , 2008-2016.\n" -"Paresh prabhu , 2013.\n" -"Pawan Chitrakar , 2006.\n" -"Przemysław Loesch , 2005.\n" -"Quico Llach , 2000. Traducció sodipodi.\n" -"Raymond Ostertag , 2002, 2003.\n" -"Riku Leino , 2006-2011.\n" -"Rune Rønde Laursen , 2006.\n" -"Ruud Steltenpool , 2006.\n" -"Sangeeta , 2011.\n" -"Savitha , 2013.\n" -"Serdar Soytetir , 2005.\n" -"shivaken , 2004.\n" -"Shyam Krishna Bal , 2006.\n" -"Simos Xenitellis , 2001, 2011.\n" -"Spyros Blanas , 2006, 2011.\n" -"Stefan Graubner , 2005.\n" -"Supranee Thirawatthanasuk , 2006.\n" -"Sushma Joshi , 2011.\n" -"Sveinn í Felli , 2014-2015.\n" -"Sylvain Chiron , 2016.\n" -"Takeshi Aihana , 2000, 2001.\n" -"Tim Sheridan , 2007-2016.\n" -"Theppitak Karoonboonyanan , 2006.\n" -"Thiago Pimentel , 2006.\n" -"Toshifumi Sato , 2005.\n" -"Jon South , 2006. \n" -"Uwe Schöler , 2006-2014.\n" -"Valek Filippov , 2000, 2003.\n" -"Victor Dachev , 2006.\n" -"Victor Westmann , 2011, 2014.\n" -"Ville Pätsi, 2013.\n" -"Vincent van Adrighem , 2003.\n" -"Vital Khilko , 2003.\n" -"Vitaly Lipatov , 2002, 2004.\n" -"vonHalenbach , 2005.\n" -"vrundeshw , 2012.\n" -"Waluyo Adi Siswanto , 2011.\n" -"Wang Li , 2002.\n" -"Wei-Lun Chao , 2006.\n" -"Wolfram Strempfer , 2006.\n" -"Xavier Conde Rueda , 2004-2008.\n" -"Yaron Shahrabani , 2009.\n" -"Yukihiro Nakai , 2000, 2003.\n" -"Yuri Beznos , 2006.\n" -"Yuri Chornoivan , 2007-2014.\n" -"Yuri Syrota , 2000.\n" -"Yves Guillou , 2004.\n" -"Zdenko Podobný , 2003, 2004." - ; - - translators_text.append(allTranslators); + auto translators_filename = Glib::build_filename(INKSCAPE_DOCDIR, "TRANSLATORS"); + + if (Glib::file_test (translators_filename, Glib::FILE_TEST_EXISTS)) { + auto all_translators = Glib::file_get_contents(translators_filename); + translators_text.append(all_translators); + } set_translator_credits(translators_text); set_license("GPL 3.0 or later"); // Overriden in next line -- cgit v1.2.3 From be3b04efd535266305d288721c4b2a0e6cc19a02 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 14:58:22 +0100 Subject: AboutBox: Add metadata --- src/ui/dialog/aboutbox.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 652ebd411..a4cb00812 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -68,29 +68,28 @@ void AboutBox::hide_about() { * Constructor */ AboutBox::AboutBox() { - // call this first initStrings(); + // Insert the Splash widget. This is placed directly into the + // content area of the dialog, whereas everything else is placed + // automatically by the Gtk::AboutDialog parent class Gtk::Widget *splash=build_splash_widget(); if (splash) { get_content_area()->pack_end(*manage(splash), true, true); splash->show_all(); } - set_logo_icon_name(INKSCAPE_ICON("inkscape")); + // Set Application metadata, which will be automatically + // inserted into text widgets by the Gtk::AboutDialog parent class set_program_name("Inkscape"); set_version(Inkscape::version_string); - + set_logo_icon_name(INKSCAPE_ICON("inkscape")); set_website("https://www.inkscape.org"); - - Gtk::Requisition minimum_size; - Gtk::Requisition natural_size; - get_preferred_size(minimum_size, natural_size); - - // allow window to shrink - set_size_request(0, 0); - set_default_size(minimum_size.width, minimum_size.height); + set_website_label(_("Inkscape website")); + set_license_type(Gtk::LICENSE_GPL_3_0); + set_comments(_("Open Source Scalable Vector Graphics Editor\n" + "Draw Freely.")); } Gtk::Widget *build_splash_widget() { @@ -203,8 +202,6 @@ void AboutBox::initStrings() { } set_translator_credits(translators_text); - set_license("GPL 3.0 or later"); // Overriden in next line - set_license_type(Gtk::LICENSE_GPL_3_0); } void AboutBox::on_response(int response_id) { -- cgit v1.2.3 From bf3e44276a4527661ed2056a354b649252d481f9 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 13:45:37 +0100 Subject: Initial rebase on Gtk::AboutDialog --- src/ui/dialog/aboutbox.cpp | 1215 ++++++++------------------------------------ src/ui/dialog/aboutbox.h | 11 +- 2 files changed, 217 insertions(+), 1009 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 9b99dde6b..c95f84f8e 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -22,9 +22,11 @@ #endif #include "ui/dialog/aboutbox.h" + +#include #include -#include -#include +#include + #include #include @@ -33,6 +35,7 @@ #include "svg-view-widget.h" #include "sp-text.h" #include "text-editing.h" +#include "ui/icon-names.h" #include "util/units.h" #include "inkscape-version.h" @@ -46,112 +49,38 @@ namespace Dialog { static Gtk::Widget *build_splash_widget(); - - -static Gtk::ScrolledWindow - *make_scrolled_text(const Glib::ustring &contents); - - - static AboutBox *window=NULL; - - void AboutBox::show_about() { if (!window) window = new AboutBox(); window->show(); } - - void AboutBox::hide_about() { if (window) window->hide(); } - /** * Constructor */ -AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { +AboutBox::AboutBox() { // call this first initStrings(); - Gtk::Notebook *tabs=new Gtk::Notebook(); - - tabs->set_scrollable(); - Gtk::Widget *splash=build_splash_widget(); if (splash) { - tabs->append_page(*manage(splash), _("_Splash"), true); + get_content_area()->pack_end(*manage(splash), true, true); + splash->show_all(); } - tabs->append_page(*manage( - make_scrolled_text(authors_text)), _("_Authors"), true); - tabs->append_page(*manage( - make_scrolled_text(translators_text)), _("_Translators"), true); - tabs->append_page(*manage( - make_scrolled_text(license_text)), _("_License"), true); - - get_content_area()->pack_end(*manage(tabs), true, true); - - tabs->show_all(); - - add_button(_("_Close"), Gtk::RESPONSE_CLOSE); - set_default_response(Gtk::RESPONSE_CLOSE); + set_logo_icon_name(INKSCAPE_ICON("inkscape")); + set_program_name("Inkscape"); + set_version(Inkscape::version_string); - Gtk::Label *label=new Gtk::Label(); - gchar *label_text = - g_strdup_printf("Inkscape %s", - Inkscape::version_string); - label->set_markup(label_text); - -#if WITH_GTKMM_3_10 - label->set_halign(Gtk::ALIGN_END); - label->set_valign(Gtk::ALIGN_CENTER); -#else - label->set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); -#endif - -#if WITH_GTKMM_3_12 - label->set_margin_start(5); - label->set_margin_end(5); -#else - label->set_padding(5,0); -#endif - - g_free(label_text); - label->set_selectable(true); - label->show(); - - Gtk::Label *link = new Gtk::Label(); - const gchar *website_link = - "https://www.inkscape.org"; - - link->set_markup(website_link); - -#if WITH_GTKMM_3_10 - link->set_halign(Gtk::ALIGN_END); -#else - link->set_alignment(Gtk::ALIGN_END); -#endif - -#if WITH_GTKMM_3_12 - label->set_margin_start(5); - label->set_margin_end(5); - label->set_margin_top(5); - label->set_margin_bottom(5); -#else - link->set_padding(5,5); -#endif - - link->set_selectable(true); - link->show(); - - get_content_area()->pack_start(*manage(label), false, false); - get_content_area()->pack_start(*manage(link), false, false); + set_website("https://www.inkscape.org"); Gtk::Requisition minimum_size; Gtk::Requisition natural_size; @@ -162,18 +91,6 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { set_default_size(minimum_size.width, minimum_size.height); } - - - -void AboutBox::on_response(int response_id) { - if ( response_id == Gtk::RESPONSE_CLOSE ) { - AboutBox::hide_about(); - } -} - - - - Gtk::Widget *build_splash_widget() { /* TRANSLATORS: This is the filename of the `About Inkscape' picture in the `screens' directory. Thus the translation of "about.svg" should be @@ -181,16 +98,20 @@ Gtk::Widget *build_splash_widget() { Please don't translate the filename unless the translated picture exists. */ + // Try to get the translated version of the 'About Inkscape' file first. If the + // translation fails, or if the file does not exist, then fall-back to the + // default untranslated "about.svg" file + // // FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the // native filename encoding... and the filename passed to sp_document_new // should be in UTF-*8.. - - char *about=g_build_filename(INKSCAPE_SCREENSDIR, _("about.svg"), NULL); - if (!g_file_test (about, G_FILE_TEST_EXISTS)) { - about=g_build_filename(INKSCAPE_SCREENSDIR, "about.svg", NULL); + auto about = Glib::build_filename(INKSCAPE_SCREENSDIR, _("about.svg")); + if (!Glib::file_test (about, Glib::FILE_TEST_EXISTS)) { + about = Glib::build_filename(INKSCAPE_SCREENSDIR, "about.svg"); } - SPDocument *doc=SPDocument::createNewDoc (about, TRUE); - g_free(about); + + // Create an Inkscape document from the 'About Inkscape' picture + SPDocument *doc=SPDocument::createNewDoc (about.c_str(), TRUE); g_return_val_if_fail(doc != NULL, NULL); SPObject *version = doc->getObjectById("version"); @@ -199,10 +120,13 @@ Gtk::Widget *build_splash_widget() { } doc->ensureUpToDate(); + // TODO: Return a Gdk::Pixbuf instead of a widget, for better integration + // with the parent Gtk::AboutDialog class GtkWidget *v=sp_svg_view_widget_new(doc); - double width=doc->getWidth().value("px"); - double height=doc->getHeight().value("px"); + // temporary hack: halve the dimensions so the dialog will fit + double width=doc->getWidth().value("px") / 2; + double height=doc->getHeight().value("px") / 2; doc->doUnref(); @@ -217,33 +141,6 @@ Gtk::Widget *build_splash_widget() { return frame; } - - - -/** - * This attempts to emulate the AboutDialog child dialog settings as - * closely as possible. Mostly, that's margin widths and shadows. Size - * is probably set in some other way, but this looked close enough. - */ -static Gtk::ScrolledWindow *make_scrolled_text(const Glib::ustring &contents) { - Gtk::ScrolledWindow *scrolled=new Gtk::ScrolledWindow(); - - scrolled->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - scrolled->set_shadow_type(Gtk::SHADOW_IN); - - Gtk::TextView *textview=manage(new Gtk::TextView()); - textview->set_editable(false); - textview->set_left_margin(10); - textview->set_right_margin(10); - textview->get_buffer()->set_text(contents); - scrolled->add(*textview); - - return scrolled; -} - - - - /** * This method must be called before any of the texts are * used for making widgets @@ -265,194 +162,193 @@ void AboutBox::initStrings() { * * and paste the result from the combo box here. */ - authors_text = -"Maximilian Albert\n" -"Joshua A. Andler\n" -"Tavmjong Bah\n" -"Pierre Barbry-Blot\n" -"Jean-François Barraud\n" -"Campbell Barton\n" -"Bill Baxter\n" -"John Beard\n" -"John Bintz\n" -"Arpad Biro\n" -"Nicholas Bishop\n" -"Joshua L. Blocher\n" -"Hanno Böck\n" -"Tomasz Boczkowski\n" -"Adrian Boguszewski\n" -"Henrik Bohre\n" -"Boldewyn\n" -"Daniel Borgmann\n" -"Bastien Bouclet\n" -"Hans Breuer\n" -"Gustav Broberg\n" -"Christopher Brown\n" -"Marcus Brubaker\n" -"Luca Bruno\n" -"Brynn (brynn@inkscapecommunity.com)\n" -"Nicu Buculei\n" -"Bulia Byak\n" -"Pierre Caclin\n" -"Ian Caldwell\n" -"Gail Carmichael\n" -"Ed Catmur\n" -"Chema Celorio\n" -"Jabiertxo Arraiza Cenoz\n" -"Johan Ceuppens\n" -"Zbigniew Chyla\n" -"Alexander Clausen\n" -"John Cliff\n" -"Kees Cook\n" -"Ben Cromwell\n" -"Robert Crosbie\n" -"Jon Cruz\n" -"Aurélie De-Cooman\n" -"Milosz Derezynski\n" -"Daniel Díaz\n" -"Bruno Dilly\n" -"Larry Doolittle\n" -"Nicolas Dufour\n" -"Tim Dwyer\n" -"Maxim V. Dziumanenko\n" -"Moritz Eberl\n" -"Johan Engelen\n" -"Miklos Erdelyi\n" -"Ulf Erikson\n" -"Noé Falzon\n" -"Sebastian Faubel\n" -"Frank Felfe\n" -"Andrew Fitzsimon\n" -"Edward Flick\n" -"Marcin Floryan\n" -"Ben Fowler\n" -"Fred\n" -"Cedric Gemy\n" -"Steren Giannini\n" -"Olivier Gondouin\n" -"Ted Gould\n" -"Toine de Greef\n" -"Michael Grosberg\n" -"Kris De Gussem\n" -"Bryce Harrington\n" -"Dale Harvey\n" -"Aurélio Adnauer Heckert\n" -"Carl Hetherington\n" -"Jos Hirth\n" -"Hannes Hochreiner\n" -"Thomas Holder\n" -"Joel Holdsworth\n" -"Christoffer Holmstedt\n" -"Alan Horkan\n" -"Karl Ove Hufthammer\n" -"Richard Hughes\n" -"Nathan Hurst\n" -"inductiveload\n" -"Thomas Ingham\n" -"Jean-Olivier Irisson\n" -"Bob Jamison\n" -"Ted Janeczko\n" -"Marc Jeanmougin\n" -"jEsuSdA\n" -"Fernando Lucchesi Bastos Jurema\n" -"Lauris Kaplinski\n" -"Lynn Kerby\n" -"Niko Kiirala\n" -"James Kilfiger\n" -"Nikita Kitaev\n" -"Jason Kivlighn\n" -"Adrian Knoth\n" -"Krzysztof Kosiński\n" -"Petr Kovar\n" -"Benoît Lavorata\n" -"Alex Leone\n" -"Julien Leray\n" -"Raph Levien\n" -"Diederik van Lierop\n" -"Nicklas Lindgren\n" -"Vitaly Lipatov\n" -"Ivan Louette\n" -"Pierre-Antoine Marc\n" -"Aurel-Aimé Marmion\n" -"Colin Marquardt\n" -"Craig Marshall\n" -"Ivan Masár\n" -"Dmitry G. Mastrukov\n" -"David Mathog\n" -"Matiphas\n" -"Michael Meeks\n" -"Federico Mena\n" -"MenTaLguY\n" -"Aubanel Monnier\n" -"Vincent Montagne\n" -"Tim Mooney\n" -"Derek P. Moore\n" -"Chris Morgan\n" -"Peter Moulder\n" -"Jörg Müller\n" -"Yukihiro Nakai\n" -"Victor Navez\n" -"Christian Neumair\n" -"Nick\n" -"Andreas Nilsson\n" -"Mitsuru Oka\n" -"Vinícius dos Santos Oliveira\n" -"Martin Owens\n" -"Alvin Penner\n" -"Matthew Petroff\n" -"Jon Phillips\n" -"Zdenko Podobny\n" -"Alexandre Prokoudine\n" -"Jean-René Reinhard\n" -"Alexey Remizov\n" -"Frederic Rodrigo\n" -"Hugo Rodrigues\n" -"Juarez Rudsatz\n" -"Xavier Conde Rueda\n" -"Felipe Corrêa da Silva Sanches\n" -"Christian Schaller\n" -"Marco Scholten\n" -"Tom von Schwerdtner\n" -"Danilo Šegan\n" -"Abhishek Sharma\n" -"Shivaken\n" -"Michael Sloan\n" -"John Smith\n" -"Sandra Snan\n" -"Boštjan Špetič\n" -"Aaron Spike\n" -"Kaushik Sridharan\n" -"Ralf Stephan\n" -"Dariusz Stojek\n" -"Martin Sucha\n" -"~suv\n" -"Pat Suwalski\n" -"Adib Taraben\n" -"Hugh Tebby\n" -"Jonas Termeau\n" -"David Turner\n" -"Andre Twupack\n" -"Aleksandar Urošević\n" -"Alex Valavanis\n" -"Joakim Verona\n" -"Lucas Vieites\n" -"Daniel Wagenaar\n" -"Liam P. White\n" -"Sebastian Wüst\n" -"Michael Wybrow\n" -"Gellule Xg\n" -"Daniel Yacob\n" -"Masatake Yamato\n" -"David Yip" -; + std::vector authors = { + "Maximilian Albert", + "Joshua A. Andler", + "Tavmjong Bah", + "Pierre Barbry-Blot", + "Jean-François Barraud", + "Campbell Barton", + "Bill Baxter", + "John Beard", + "John Bintz", + "Arpad Biro", + "Nicholas Bishop", + "Joshua L. Blocher", + "Hanno Böck", + "Tomasz Boczkowski", + "Adrian Boguszewski", + "Henrik Bohre", + "Boldewyn", + "Daniel Borgmann", + "Bastien Bouclet", + "Hans Breuer", + "Gustav Broberg", + "Christopher Brown", + "Marcus Brubaker", + "Luca Bruno", + "Brynn (brynn@inkscapecommunity.com)", + "Nicu Buculei", + "Bulia Byak", + "Pierre Caclin", + "Ian Caldwell", + "Gail Carmichael", + "Ed Catmur", + "Chema Celorio", + "Jabiertxo Arraiza Cenoz", + "Johan Ceuppens", + "Zbigniew Chyla", + "Alexander Clausen", + "John Cliff", + "Kees Cook", + "Ben Cromwell", + "Robert Crosbie", + "Jon Cruz", + "Aurélie De-Cooman", + "Milosz Derezynski", + "Daniel Díaz", + "Bruno Dilly", + "Larry Doolittle", + "Nicolas Dufour", + "Tim Dwyer", + "Maxim V. Dziumanenko", + "Moritz Eberl", + "Johan Engelen", + "Miklos Erdelyi", + "Ulf Erikson", + "Noé Falzon", + "Sebastian Faubel", + "Frank Felfe", + "Andrew Fitzsimon", + "Edward Flick", + "Marcin Floryan", + "Ben Fowler", + "Fred", + "Cedric Gemy", + "Steren Giannini", + "Olivier Gondouin", + "Ted Gould", + "Toine de Greef", + "Michael Grosberg", + "Kris De Gussem", + "Bryce Harrington", + "Dale Harvey", + "Aurélio Adnauer Heckert", + "Carl Hetherington", + "Jos Hirth", + "Hannes Hochreiner", + "Thomas Holder", + "Joel Holdsworth", + "Christoffer Holmstedt", + "Alan Horkan", + "Karl Ove Hufthammer", + "Richard Hughes", + "Nathan Hurst", + "inductiveload", + "Thomas Ingham", + "Jean-Olivier Irisson", + "Bob Jamison", + "Ted Janeczko", + "Marc Jeanmougin", + "jEsuSdA", + "Fernando Lucchesi Bastos Jurema", + "Lauris Kaplinski", + "Lynn Kerby", + "Niko Kiirala", + "James Kilfiger", + "Nikita Kitaev", + "Jason Kivlighn", + "Adrian Knoth", + "Krzysztof Kosiński", + "Petr Kovar", + "Benoît Lavorata", + "Alex Leone", + "Julien Leray", + "Raph Levien", + "Diederik van Lierop", + "Nicklas Lindgren", + "Vitaly Lipatov", + "Ivan Louette", + "Pierre-Antoine Marc", + "Aurel-Aimé Marmion", + "Colin Marquardt", + "Craig Marshall", + "Ivan Masár", + "Dmitry G. Mastrukov", + "David Mathog", + "Matiphas", + "Michael Meeks", + "Federico Mena", + "MenTaLguY", + "Aubanel Monnier", + "Vincent Montagne", + "Tim Mooney", + "Derek P. Moore", + "Chris Morgan", + "Peter Moulder", + "Jörg Müller", + "Yukihiro Nakai", + "Victor Navez", + "Christian Neumair", + "Nick", + "Andreas Nilsson", + "Mitsuru Oka", + "Vinícius dos Santos Oliveira", + "Martin Owens", + "Alvin Penner", + "Matthew Petroff", + "Jon Phillips", + "Zdenko Podobny", + "Alexandre Prokoudine", + "Jean-René Reinhard", + "Alexey Remizov", + "Frederic Rodrigo", + "Hugo Rodrigues", + "Juarez Rudsatz", + "Xavier Conde Rueda", + "Felipe Corrêa da Silva Sanches", + "Christian Schaller", + "Marco Scholten", + "Tom von Schwerdtner", + "Danilo Šegan", + "Abhishek Sharma", + "Shivaken", + "Michael Sloan", + "John Smith", + "Sandra Snan", + "Boštjan Špetič", + "Aaron Spike", + "Kaushik Sridharan", + "Ralf Stephan", + "Dariusz Stojek", + "Martin Sucha", + "~suv", + "Pat Suwalski", + "Adib Taraben", + "Hugh Tebby", + "Jonas Termeau", + "David Turner", + "Andre Twupack", + "Aleksandar Urošević", + "Alex Valavanis", + "Joakim Verona", + "Lucas Vieites", + "Daniel Wagenaar", + "Liam P. White", + "Sebastian Wüst", + "Michael Wybrow", + "Gellule Xg", + "Daniel Yacob", + "Masatake Yamato", + "David Yip"}; + set_authors(authors); //############################## //# T R A N S L A T O R S //############################## + Glib::ustring translators_text; - translators_text = ""; - // TRANSLATORS: Put here your name (and other national contributors') // one per line in the form of: name surname (email). Use \n for newline. Glib::ustring thisTranslation = _("translator-credits"); @@ -642,697 +538,14 @@ void AboutBox::initStrings() { translators_text.append(allTranslators); - - - //############################## - //# L I C E N S E - //############################## - - /** - * This text is copied from the COPYING file - */ - license_text = - " GNU GENERAL PUBLIC LICENSE\n" - " Version 3, 29 June 2007\n" - "\n" - " Copyright (C) 2007 Free Software Foundation, Inc. \n" - " Everyone is permitted to copy and distribute verbatim copies\n" - " of this license document, but changing it is not allowed.\n" - "\n" - " Preamble\n" - "\n" - " The GNU General Public License is a free, copyleft license for\n" - "software and other kinds of works.\n" - "\n" - " The licenses for most software and other practical works are designed\n" - "to take away your freedom to share and change the works. By contrast,\n" - "the GNU General Public License is intended to guarantee your freedom to\n" - "share and change all versions of a program--to make sure it remains free\n" - "software for all its users. We, the Free Software Foundation, use the\n" - "GNU General Public License for most of our software; it applies also to\n" - "any other work released this way by its authors. You can apply it to\n" - "your programs, too.\n" - "\n" - " When we speak of free software, we are referring to freedom, not\n" - "price. Our General Public Licenses are designed to make sure that you\n" - "have the freedom to distribute copies of free software (and charge for\n" - "them if you wish), that you receive source code or can get it if you\n" - "want it, that you can change the software or use pieces of it in new\n" - "free programs, and that you know you can do these things.\n" - "\n" - " To protect your rights, we need to prevent others from denying you\n" - "these rights or asking you to surrender the rights. Therefore, you have\n" - "certain responsibilities if you distribute copies of the software, or if\n" - "you modify it: responsibilities to respect the freedom of others.\n" - "\n" - " For example, if you distribute copies of such a program, whether\n" - "gratis or for a fee, you must pass on to the recipients the same\n" - "freedoms that you received. You must make sure that they, too, receive\n" - "or can get the source code. And you must show them these terms so they\n" - "know their rights.\n" - "\n" - " Developers that use the GNU GPL protect your rights with two steps:\n" - "(1) assert copyright on the software, and (2) offer you this License\n" - "giving you legal permission to copy, distribute and/or modify it.\n" - "\n" - " For the developers' and authors' protection, the GPL clearly explains\n" - "that there is no warranty for this free software. For both users' and\n" - "authors' sake, the GPL requires that modified versions be marked as\n" - "changed, so that their problems will not be attributed erroneously to\n" - "authors of previous versions.\n" - "\n" - " Some devices are designed to deny users access to install or run\n" - "modified versions of the software inside them, although the manufacturer\n" - "can do so. This is fundamentally incompatible with the aim of\n" - "protecting users' freedom to change the software. The systematic\n" - "pattern of such abuse occurs in the area of products for individuals to\n" - "use, which is precisely where it is most unacceptable. Therefore, we\n" - "have designed this version of the GPL to prohibit the practice for those\n" - "products. If such problems arise substantially in other domains, we\n" - "stand ready to extend this provision to those domains in future versions\n" - "of the GPL, as needed to protect the freedom of users.\n" - "\n" - " Finally, every program is threatened constantly by software patents.\n" - "States should not allow patents to restrict development and use of\n" - "software on general-purpose computers, but in those that do, we wish to\n" - "avoid the special danger that patents applied to a free program could\n" - "make it effectively proprietary. To prevent this, the GPL assures that\n" - "patents cannot be used to render the program non-free.\n" - "\n" - " The precise terms and conditions for copying, distribution and\n" - "modification follow.\n" - "\n" - " TERMS AND CONDITIONS\n" - "\n" - " 0. Definitions.\n" - "\n" - " \"This License\" refers to version 3 of the GNU General Public License.\n" - "\n" - " \"Copyright\" also means copyright-like laws that apply to other kinds of\n" - "works, such as semiconductor masks.\n" - "\n" - " \"The Program\" refers to any copyrightable work licensed under this\n" - "License. Each licensee is addressed as \"you\". \"Licensees\" and\n" - "\"recipients\" may be individuals or organizations.\n" - "\n" - " To \"modify\" a work means to copy from or adapt all or part of the work\n" - "in a fashion requiring copyright permission, other than the making of an\n" - "exact copy. The resulting work is called a \"modified version\" of the\n" - "earlier work or a work \"based on\" the earlier work.\n" - "\n" - " A \"covered work\" means either the unmodified Program or a work based\n" - "on the Program.\n" - "\n" - " To \"propagate\" a work means to do anything with it that, without\n" - "permission, would make you directly or secondarily liable for\n" - "infringement under applicable copyright law, except executing it on a\n" - "computer or modifying a private copy. Propagation includes copying,\n" - "distribution (with or without modification), making available to the\n" - "public, and in some countries other activities as well.\n" - "\n" - " To \"convey\" a work means any kind of propagation that enables other\n" - "parties to make or receive copies. Mere interaction with a user through\n" - "a computer network, with no transfer of a copy, is not conveying.\n" - "\n" - " An interactive user interface displays \"Appropriate Legal Notices\"\n" - "to the extent that it includes a convenient and prominently visible\n" - "feature that (1) displays an appropriate copyright notice, and (2)\n" - "tells the user that there is no warranty for the work (except to the\n" - "extent that warranties are provided), that licensees may convey the\n" - "work under this License, and how to view a copy of this License. If\n" - "the interface presents a list of user commands or options, such as a\n" - "menu, a prominent item in the list meets this criterion.\n" - "\n" - " 1. Source Code.\n" - "\n" - " The \"source code\" for a work means the preferred form of the work\n" - "for making modifications to it. \"Object code\" means any non-source\n" - "form of a work.\n" - "\n" - " A \"Standard Interface\" means an interface that either is an official\n" - "standard defined by a recognized standards body, or, in the case of\n" - "interfaces specified for a particular programming language, one that\n" - "is widely used among developers working in that language.\n" - "\n" - " The \"System Libraries\" of an executable work include anything, other\n" - "than the work as a whole, that (a) is included in the normal form of\n" - "packaging a Major Component, but which is not part of that Major\n" - "Component, and (b) serves only to enable use of the work with that\n" - "Major Component, or to implement a Standard Interface for which an\n" - "implementation is available to the public in source code form. A\n" - "\"Major Component\", in this context, means a major essential component\n" - "(kernel, window system, and so on) of the specific operating system\n" - "(if any) on which the executable work runs, or a compiler used to\n" - "produce the work, or an object code interpreter used to run it.\n" - "\n" - " The \"Corresponding Source\" for a work in object code form means all\n" - "the source code needed to generate, install, and (for an executable\n" - "work) run the object code and to modify the work, including scripts to\n" - "control those activities. However, it does not include the work's\n" - "System Libraries, or general-purpose tools or generally available free\n" - "programs which are used unmodified in performing those activities but\n" - "which are not part of the work. For example, Corresponding Source\n" - "includes interface definition files associated with source files for\n" - "the work, and the source code for shared libraries and dynamically\n" - "linked subprograms that the work is specifically designed to require,\n" - "such as by intimate data communication or control flow between those\n" - "subprograms and other parts of the work.\n" - "\n" - " The Corresponding Source need not include anything that users\n" - "can regenerate automatically from other parts of the Corresponding\n" - "Source.\n" - "\n" - " The Corresponding Source for a work in source code form is that\n" - "same work.\n" - "\n" - " 2. Basic Permissions.\n" - "\n" - " All rights granted under this License are granted for the term of\n" - "copyright on the Program, and are irrevocable provided the stated\n" - "conditions are met. This License explicitly affirms your unlimited\n" - "permission to run the unmodified Program. The output from running a\n" - "covered work is covered by this License only if the output, given its\n" - "content, constitutes a covered work. This License acknowledges your\n" - "rights of fair use or other equivalent, as provided by copyright law.\n" - "\n" - " You may make, run and propagate covered works that you do not\n" - "convey, without conditions so long as your license otherwise remains\n" - "in force. You may convey covered works to others for the sole purpose\n" - "of having them make modifications exclusively for you, or provide you\n" - "with facilities for running those works, provided that you comply with\n" - "the terms of this License in conveying all material for which you do\n" - "not control copyright. Those thus making or running the covered works\n" - "for you must do so exclusively on your behalf, under your direction\n" - "and control, on terms that prohibit them from making any copies of\n" - "your copyrighted material outside their relationship with you.\n" - "\n" - " Conveying under any other circumstances is permitted solely under\n" - "the conditions stated below. Sublicensing is not allowed; section 10\n" - "makes it unnecessary.\n" - "\n" - " 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n" - "\n" - " No covered work shall be deemed part of an effective technological\n" - "measure under any applicable law fulfilling obligations under article\n" - "11 of the WIPO copyright treaty adopted on 20 December 1996, or\n" - "similar laws prohibiting or restricting circumvention of such\n" - "measures.\n" - "\n" - " When you convey a covered work, you waive any legal power to forbid\n" - "circumvention of technological measures to the extent such circumvention\n" - "is effected by exercising rights under this License with respect to\n" - "the covered work, and you disclaim any intention to limit operation or\n" - "modification of the work as a means of enforcing, against the work's\n" - "users, your or third parties' legal rights to forbid circumvention of\n" - "technological measures.\n" - "\n" - " 4. Conveying Verbatim Copies.\n" - "\n" - " You may convey verbatim copies of the Program's source code as you\n" - "receive it, in any medium, provided that you conspicuously and\n" - "appropriately publish on each copy an appropriate copyright notice;\n" - "keep intact all notices stating that this License and any\n" - "non-permissive terms added in accord with section 7 apply to the code;\n" - "keep intact all notices of the absence of any warranty; and give all\n" - "recipients a copy of this License along with the Program.\n" - "\n" - " You may charge any price or no price for each copy that you convey,\n" - "and you may offer support or warranty protection for a fee.\n" - "\n" - " 5. Conveying Modified Source Versions.\n" - "\n" - " You may convey a work based on the Program, or the modifications to\n" - "produce it from the Program, in the form of source code under the\n" - "terms of section 4, provided that you also meet all of these conditions:\n" - "\n" - " a) The work must carry prominent notices stating that you modified\n" - " it, and giving a relevant date.\n" - "\n" - " b) The work must carry prominent notices stating that it is\n" - " released under this License and any conditions added under section\n" - " 7. This requirement modifies the requirement in section 4 to\n" - " \"keep intact all notices\".\n" - "\n" - " c) You must license the entire work, as a whole, under this\n" - " License to anyone who comes into possession of a copy. This\n" - " License will therefore apply, along with any applicable section 7\n" - " additional terms, to the whole of the work, and all its parts,\n" - " regardless of how they are packaged. This License gives no\n" - " permission to license the work in any other way, but it does not\n" - " invalidate such permission if you have separately received it.\n" - "\n" - " d) If the work has interactive user interfaces, each must display\n" - " Appropriate Legal Notices; however, if the Program has interactive\n" - " interfaces that do not display Appropriate Legal Notices, your\n" - " work need not make them do so.\n" - "\n" - " A compilation of a covered work with other separate and independent\n" - "works, which are not by their nature extensions of the covered work,\n" - "and which are not combined with it such as to form a larger program,\n" - "in or on a volume of a storage or distribution medium, is called an\n" - "\"aggregate\" if the compilation and its resulting copyright are not\n" - "used to limit the access or legal rights of the compilation's users\n" - "beyond what the individual works permit. Inclusion of a covered work\n" - "in an aggregate does not cause this License to apply to the other\n" - "parts of the aggregate.\n" - "\n" - " 6. Conveying Non-Source Forms.\n" - "\n" - " You may convey a covered work in object code form under the terms\n" - "of sections 4 and 5, provided that you also convey the\n" - "machine-readable Corresponding Source under the terms of this License,\n" - "in one of these ways:\n" - "\n" - " a) Convey the object code in, or embodied in, a physical product\n" - " (including a physical distribution medium), accompanied by the\n" - " Corresponding Source fixed on a durable physical medium\n" - " customarily used for software interchange.\n" - "\n" - " b) Convey the object code in, or embodied in, a physical product\n" - " (including a physical distribution medium), accompanied by a\n" - " written offer, valid for at least three years and valid for as\n" - " long as you offer spare parts or customer support for that product\n" - " model, to give anyone who possesses the object code either (1) a\n" - " copy of the Corresponding Source for all the software in the\n" - " product that is covered by this License, on a durable physical\n" - " medium customarily used for software interchange, for a price no\n" - " more than your reasonable cost of physically performing this\n" - " conveying of source, or (2) access to copy the\n" - " Corresponding Source from a network server at no charge.\n" - "\n" - " c) Convey individual copies of the object code with a copy of the\n" - " written offer to provide the Corresponding Source. This\n" - " alternative is allowed only occasionally and noncommercially, and\n" - " only if you received the object code with such an offer, in accord\n" - " with subsection 6b.\n" - "\n" - " d) Convey the object code by offering access from a designated\n" - " place (gratis or for a charge), and offer equivalent access to the\n" - " Corresponding Source in the same way through the same place at no\n" - " further charge. You need not require recipients to copy the\n" - " Corresponding Source along with the object code. If the place to\n" - " copy the object code is a network server, the Corresponding Source\n" - " may be on a different server (operated by you or a third party)\n" - " that supports equivalent copying facilities, provided you maintain\n" - " clear directions next to the object code saying where to find the\n" - " Corresponding Source. Regardless of what server hosts the\n" - " Corresponding Source, you remain obligated to ensure that it is\n" - " available for as long as needed to satisfy these requirements.\n" - "\n" - " e) Convey the object code using peer-to-peer transmission, provided\n" - " you inform other peers where the object code and Corresponding\n" - " Source of the work are being offered to the general public at no\n" - " charge under subsection 6d.\n" - "\n" - " A separable portion of the object code, whose source code is excluded\n" - "from the Corresponding Source as a System Library, need not be\n" - "included in conveying the object code work.\n" - "\n" - " A \"User Product\" is either (1) a \"consumer product\", which means any\n" - "tangible personal property which is normally used for personal, family,\n" - "or household purposes, or (2) anything designed or sold for incorporation\n" - "into a dwelling. In determining whether a product is a consumer product,\n" - "doubtful cases shall be resolved in favor of coverage. For a particular\n" - "product received by a particular user, \"normally used\" refers to a\n" - "typical or common use of that class of product, regardless of the status\n" - "of the particular user or of the way in which the particular user\n" - "actually uses, or expects or is expected to use, the product. A product\n" - "is a consumer product regardless of whether the product has substantial\n" - "commercial, industrial or non-consumer uses, unless such uses represent\n" - "the only significant mode of use of the product.\n" - "\n" - " \"Installation Information\" for a User Product means any methods,\n" - "procedures, authorization keys, or other information required to install\n" - "and execute modified versions of a covered work in that User Product from\n" - "a modified version of its Corresponding Source. The information must\n" - "suffice to ensure that the continued functioning of the modified object\n" - "code is in no case prevented or interfered with solely because\n" - "modification has been made.\n" - "\n" - " If you convey an object code work under this section in, or with, or\n" - "specifically for use in, a User Product, and the conveying occurs as\n" - "part of a transaction in which the right of possession and use of the\n" - "User Product is transferred to the recipient in perpetuity or for a\n" - "fixed term (regardless of how the transaction is characterized), the\n" - "Corresponding Source conveyed under this section must be accompanied\n" - "by the Installation Information. But this requirement does not apply\n" - "if neither you nor any third party retains the ability to install\n" - "modified object code on the User Product (for example, the work has\n" - "been installed in ROM).\n" - "\n" - " The requirement to provide Installation Information does not include a\n" - "requirement to continue to provide support service, warranty, or updates\n" - "for a work that has been modified or installed by the recipient, or for\n" - "the User Product in which it has been modified or installed. Access to a\n" - "network may be denied when the modification itself materially and\n" - "adversely affects the operation of the network or violates the rules and\n" - "protocols for communication across the network.\n" - "\n" - " Corresponding Source conveyed, and Installation Information provided,\n" - "in accord with this section must be in a format that is publicly\n" - "documented (and with an implementation available to the public in\n" - "source code form), and must require no special password or key for\n" - "unpacking, reading or copying.\n" - "\n" - " 7. Additional Terms.\n" - "\n" - " \"Additional permissions\" are terms that supplement the terms of this\n" - "License by making exceptions from one or more of its conditions.\n" - "Additional permissions that are applicable to the entire Program shall\n" - "be treated as though they were included in this License, to the extent\n" - "that they are valid under applicable law. If additional permissions\n" - "apply only to part of the Program, that part may be used separately\n" - "under those permissions, but the entire Program remains governed by\n" - "this License without regard to the additional permissions.\n" - "\n" - " When you convey a copy of a covered work, you may at your option\n" - "remove any additional permissions from that copy, or from any part of\n" - "it. (Additional permissions may be written to require their own\n" - "removal in certain cases when you modify the work.) You may place\n" - "additional permissions on material, added by you to a covered work,\n" - "for which you have or can give appropriate copyright permission.\n" - "\n" - " Notwithstanding any other provision of this License, for material you\n" - "add to a covered work, you may (if authorized by the copyright holders of\n" - "that material) supplement the terms of this License with terms:\n" - "\n" - " a) Disclaiming warranty or limiting liability differently from the\n" - " terms of sections 15 and 16 of this License; or\n" - "\n" - " b) Requiring preservation of specified reasonable legal notices or\n" - " author attributions in that material or in the Appropriate Legal\n" - " Notices displayed by works containing it; or\n" - "\n" - " c) Prohibiting misrepresentation of the origin of that material, or\n" - " requiring that modified versions of such material be marked in\n" - " reasonable ways as different from the original version; or\n" - "\n" - " d) Limiting the use for publicity purposes of names of licensors or\n" - " authors of the material; or\n" - "\n" - " e) Declining to grant rights under trademark law for use of some\n" - " trade names, trademarks, or service marks; or\n" - "\n" - " f) Requiring indemnification of licensors and authors of that\n" - " material by anyone who conveys the material (or modified versions of\n" - " it) with contractual assumptions of liability to the recipient, for\n" - " any liability that these contractual assumptions directly impose on\n" - " those licensors and authors.\n" - "\n" - " All other non-permissive additional terms are considered \"further\n" - "restrictions\" within the meaning of section 10. If the Program as you\n" - "received it, or any part of it, contains a notice stating that it is\n" - "governed by this License along with a term that is a further\n" - "restriction, you may remove that term. If a license document contains\n" - "a further restriction but permits relicensing or conveying under this\n" - "License, you may add to a covered work material governed by the terms\n" - "of that license document, provided that the further restriction does\n" - "not survive such relicensing or conveying.\n" - "\n" - " If you add terms to a covered work in accord with this section, you\n" - "must place, in the relevant source files, a statement of the\n" - "additional terms that apply to those files, or a notice indicating\n" - "where to find the applicable terms.\n" - "\n" - " Additional terms, permissive or non-permissive, may be stated in the\n" - "form of a separately written license, or stated as exceptions;\n" - "the above requirements apply either way.\n" - "\n" - " 8. Termination.\n" - "\n" - " You may not propagate or modify a covered work except as expressly\n" - "provided under this License. Any attempt otherwise to propagate or\n" - "modify it is void, and will automatically terminate your rights under\n" - "this License (including any patent licenses granted under the third\n" - "paragraph of section 11).\n" - "\n" - " However, if you cease all violation of this License, then your\n" - "license from a particular copyright holder is reinstated (a)\n" - "provisionally, unless and until the copyright holder explicitly and\n" - "finally terminates your license, and (b) permanently, if the copyright\n" - "holder fails to notify you of the violation by some reasonable means\n" - "prior to 60 days after the cessation.\n" - "\n" - " Moreover, your license from a particular copyright holder is\n" - "reinstated permanently if the copyright holder notifies you of the\n" - "violation by some reasonable means, this is the first time you have\n" - "received notice of violation of this License (for any work) from that\n" - "copyright holder, and you cure the violation prior to 30 days after\n" - "your receipt of the notice.\n" - "\n" - " Termination of your rights under this section does not terminate the\n" - "licenses of parties who have received copies or rights from you under\n" - "this License. If your rights have been terminated and not permanently\n" - "reinstated, you do not qualify to receive new licenses for the same\n" - "material under section 10.\n" - "\n" - " 9. Acceptance Not Required for Having Copies.\n" - "\n" - " You are not required to accept this License in order to receive or\n" - "run a copy of the Program. Ancillary propagation of a covered work\n" - "occurring solely as a consequence of using peer-to-peer transmission\n" - "to receive a copy likewise does not require acceptance. However,\n" - "nothing other than this License grants you permission to propagate or\n" - "modify any covered work. These actions infringe copyright if you do\n" - "not accept this License. Therefore, by modifying or propagating a\n" - "covered work, you indicate your acceptance of this License to do so.\n" - "\n" - " 10. Automatic Licensing of Downstream Recipients.\n" - "\n" - " Each time you convey a covered work, the recipient automatically\n" - "receives a license from the original licensors, to run, modify and\n" - "propagate that work, subject to this License. You are not responsible\n" - "for enforcing compliance by third parties with this License.\n" - "\n" - " An \"entity transaction\" is a transaction transferring control of an\n" - "organization, or substantially all assets of one, or subdividing an\n" - "organization, or merging organizations. If propagation of a covered\n" - "work results from an entity transaction, each party to that\n" - "transaction who receives a copy of the work also receives whatever\n" - "licenses to the work the party's predecessor in interest had or could\n" - "give under the previous paragraph, plus a right to possession of the\n" - "Corresponding Source of the work from the predecessor in interest, if\n" - "the predecessor has it or can get it with reasonable efforts.\n" - "\n" - " You may not impose any further restrictions on the exercise of the\n" - "rights granted or affirmed under this License. For example, you may\n" - "not impose a license fee, royalty, or other charge for exercise of\n" - "rights granted under this License, and you may not initiate litigation\n" - "(including a cross-claim or counterclaim in a lawsuit) alleging that\n" - "any patent claim is infringed by making, using, selling, offering for\n" - "sale, or importing the Program or any portion of it.\n" - "\n" - " 11. Patents.\n" - "\n" - " A \"contributor\" is a copyright holder who authorizes use under this\n" - "License of the Program or a work on which the Program is based. The\n" - "work thus licensed is called the contributor's \"contributor version\".\n" - "\n" - " A contributor's \"essential patent claims\" are all patent claims\n" - "owned or controlled by the contributor, whether already acquired or\n" - "hereafter acquired, that would be infringed by some manner, permitted\n" - "by this License, of making, using, or selling its contributor version,\n" - "but do not include claims that would be infringed only as a\n" - "consequence of further modification of the contributor version. For\n" - "purposes of this definition, \"control\" includes the right to grant\n" - "patent sublicenses in a manner consistent with the requirements of\n" - "this License.\n" - "\n" - " Each contributor grants you a non-exclusive, worldwide, royalty-free\n" - "patent license under the contributor's essential patent claims, to\n" - "make, use, sell, offer for sale, import and otherwise run, modify and\n" - "propagate the contents of its contributor version.\n" - "\n" - " In the following three paragraphs, a \"patent license\" is any express\n" - "agreement or commitment, however denominated, not to enforce a patent\n" - "(such as an express permission to practice a patent or covenant not to\n" - "sue for patent infringement). To \"grant\" such a patent license to a\n" - "party means to make such an agreement or commitment not to enforce a\n" - "patent against the party.\n" - "\n" - " If you convey a covered work, knowingly relying on a patent license,\n" - "and the Corresponding Source of the work is not available for anyone\n" - "to copy, free of charge and under the terms of this License, through a\n" - "publicly available network server or other readily accessible means,\n" - "then you must either (1) cause the Corresponding Source to be so\n" - "available, or (2) arrange to deprive yourself of the benefit of the\n" - "patent license for this particular work, or (3) arrange, in a manner\n" - "consistent with the requirements of this License, to extend the patent\n" - "license to downstream recipients. \"Knowingly relying\" means you have\n" - "actual knowledge that, but for the patent license, your conveying the\n" - "covered work in a country, or your recipient's use of the covered work\n" - "in a country, would infringe one or more identifiable patents in that\n" - "country that you have reason to believe are valid.\n" - "\n" - " If, pursuant to or in connection with a single transaction or\n" - "arrangement, you convey, or propagate by procuring conveyance of, a\n" - "covered work, and grant a patent license to some of the parties\n" - "receiving the covered work authorizing them to use, propagate, modify\n" - "or convey a specific copy of the covered work, then the patent license\n" - "you grant is automatically extended to all recipients of the covered\n" - "work and works based on it.\n" - "\n" - " A patent license is \"discriminatory\" if it does not include within\n" - "the scope of its coverage, prohibits the exercise of, or is\n" - "conditioned on the non-exercise of one or more of the rights that are\n" - "specifically granted under this License. You may not convey a covered\n" - "work if you are a party to an arrangement with a third party that is\n" - "in the business of distributing software, under which you make payment\n" - "to the third party based on the extent of your activity of conveying\n" - "the work, and under which the third party grants, to any of the\n" - "parties who would receive the covered work from you, a discriminatory\n" - "patent license (a) in connection with copies of the covered work\n" - "conveyed by you (or copies made from those copies), or (b) primarily\n" - "for and in connection with specific products or compilations that\n" - "contain the covered work, unless you entered into that arrangement,\n" - "or that patent license was granted, prior to 28 March 2007.\n" - "\n" - " Nothing in this License shall be construed as excluding or limiting\n" - "any implied license or other defenses to infringement that may\n" - "otherwise be available to you under applicable patent law.\n" - "\n" - " 12. No Surrender of Others' Freedom.\n" - "\n" - " If conditions are imposed on you (whether by court order, agreement or\n" - "otherwise) that contradict the conditions of this License, they do not\n" - "excuse you from the conditions of this License. If you cannot convey a\n" - "covered work so as to satisfy simultaneously your obligations under this\n" - "License and any other pertinent obligations, then as a consequence you may\n" - "not convey it at all. For example, if you agree to terms that obligate you\n" - "to collect a royalty for further conveying from those to whom you convey\n" - "the Program, the only way you could satisfy both those terms and this\n" - "License would be to refrain entirely from conveying the Program.\n" - "\n" - " 13. Use with the GNU Affero General Public License.\n" - "\n" - " Notwithstanding any other provision of this License, you have\n" - "permission to link or combine any covered work with a work licensed\n" - "under version 3 of the GNU Affero General Public License into a single\n" - "combined work, and to convey the resulting work. The terms of this\n" - "License will continue to apply to the part which is the covered work,\n" - "but the special requirements of the GNU Affero General Public License,\n" - "section 13, concerning interaction through a network will apply to the\n" - "combination as such.\n" - "\n" - " 14. Revised Versions of this License.\n" - "\n" - " The Free Software Foundation may publish revised and/or new versions of\n" - "the GNU General Public License from time to time. Such new versions will\n" - "be similar in spirit to the present version, but may differ in detail to\n" - "address new problems or concerns.\n" - "\n" - " Each version is given a distinguishing version number. If the\n" - "Program specifies that a certain numbered version of the GNU General\n" - "Public License \"or any later version\" applies to it, you have the\n" - "option of following the terms and conditions either of that numbered\n" - "version or of any later version published by the Free Software\n" - "Foundation. If the Program does not specify a version number of the\n" - "GNU General Public License, you may choose any version ever published\n" - "by the Free Software Foundation.\n" - "\n" - " If the Program specifies that a proxy can decide which future\n" - "versions of the GNU General Public License can be used, that proxy's\n" - "public statement of acceptance of a version permanently authorizes you\n" - "to choose that version for the Program.\n" - "\n" - " Later license versions may give you additional or different\n" - "permissions. However, no additional obligations are imposed on any\n" - "author or copyright holder as a result of your choosing to follow a\n" - "later version.\n" - "\n" - " 15. Disclaimer of Warranty.\n" - "\n" - " THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n" - "APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n" - "HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n" - "OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n" - "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n" - "PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n" - "IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n" - "ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n" - "\n" - " 16. Limitation of Liability.\n" - "\n" - " IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" - "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n" - "THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n" - "GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n" - "USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n" - "DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n" - "PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n" - "EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n" - "SUCH DAMAGES.\n" - "\n" - " 17. Interpretation of Sections 15 and 16.\n" - "\n" - " If the disclaimer of warranty and limitation of liability provided\n" - "above cannot be given local legal effect according to their terms,\n" - "reviewing courts shall apply local law that most closely approximates\n" - "an absolute waiver of all civil liability in connection with the\n" - "Program, unless a warranty or assumption of liability accompanies a\n" - "copy of the Program in return for a fee.\n" - "\n" - " END OF TERMS AND CONDITIONS\n" - "\n" - " How to Apply These Terms to Your New Programs\n" - "\n" - " If you develop a new program, and you want it to be of the greatest\n" - "possible use to the public, the best way to achieve this is to make it\n" - "free software which everyone can redistribute and change under these terms.\n" - "\n" - " To do so, attach the following notices to the program. It is safest\n" - "to attach them to the start of each source file to most effectively\n" - "state the exclusion of warranty; and each file should have at least\n" - "the \"copyright\" line and a pointer to where the full notice is found.\n" - "\n" - " \n" - " Copyright (C) \n" - "\n" - " This program is free software: you can redistribute it and/or modify\n" - " it under the terms of the GNU General Public License as published by\n" - " the Free Software Foundation, either version 3 of the License, or\n" - " (at your option) any later version.\n" - "\n" - " This program is distributed in the hope that it will be useful,\n" - " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - " GNU General Public License for more details.\n" - "\n" - " You should have received a copy of the GNU General Public License\n" - " along with this program. If not, see .\n" - "\n" - "Also add information on how to contact you by electronic and paper mail.\n" - "\n" - " If the program does terminal interaction, make it output a short\n" - "notice like this when it starts in an interactive mode:\n" - "\n" - " Copyright (C) \n" - " This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n" - " This is free software, and you are welcome to redistribute it\n" - " under certain conditions; type `show c' for details.\n" - "\n" - "The hypothetical commands `show w' and `show c' should show the appropriate\n" - "parts of the General Public License. Of course, your program's commands\n" - "might be different; for a GUI interface, you would use an \"about box\".\n" - "\n" - " You should also get your employer (if you work as a programmer) or school,\n" - "if any, to sign a \"copyright disclaimer\" for the program, if necessary.\n" - "For more information on this, and how to apply and follow the GNU GPL, see\n" - ".\n" - "\n" - " The GNU General Public License does not permit incorporating your program\n" - "into proprietary programs. If your program is a subroutine library, you\n" - "may consider it more useful to permit linking proprietary applications with\n" - "the library. If this is what you want to do, use the GNU Lesser General\n" - "Public License instead of this License. But first, please read\n" - "." - ; - + set_translator_credits(translators_text); + set_license("GPL 3.0 or later"); // Overriden in next line + set_license_type(Gtk::LICENSE_GPL_3_0); } - - - +void AboutBox::on_response(int response_id) { + hide(); +} } // namespace Dialog } // namespace UI } // namespace Inkscape diff --git a/src/ui/dialog/aboutbox.h b/src/ui/dialog/aboutbox.h index f3234b88d..1611587a1 100644 --- a/src/ui/dialog/aboutbox.h +++ b/src/ui/dialog/aboutbox.h @@ -15,13 +15,13 @@ #ifndef INKSCAPE_UI_DIALOG_ABOUTBOX_H #define INKSCAPE_UI_DIALOG_ABOUTBOX_H -#include +#include namespace Inkscape { namespace UI { namespace Dialog { -class AboutBox : public Gtk::Dialog { +class AboutBox : public Gtk::AboutDialog { public: @@ -33,12 +33,7 @@ private: AboutBox(); void initStrings(); - - Glib::ustring authors_text; - Glib::ustring translators_text; - Glib::ustring license_text; - - virtual void on_response(int response_id); + void on_response(int response_id) override; }; } // namespace Dialog -- cgit v1.2.3 From 04f39fab067f28e2651fc7b68c642002e2de15ef Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 14:39:38 +0100 Subject: Install AUTHORS & TRANSLATORS files and auto-generate credits in AboutBox --- CMakeLists.txt | 4 + src/path-prefix.h | 4 + src/ui/dialog/aboutbox.cpp | 386 +++------------------------------------------ 3 files changed, 33 insertions(+), 361 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b643b2b6..12f21694a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,6 +235,10 @@ canonicalize_flags_var("${CMAKE_CXX_FLAGS}" _new_cxx) set(CMAKE_CXX_FLAGS "${_new_cxx}" CACHE STRING "" FORCE) # message(FATAL_ERROR "CMAKE_CXX_FLAGS = <${CMAKE_CXX_FLAGS}>") +install(FILES + AUTHORS + TRANSLATORS + DESTINATION ${INKSCAPE_SHARE_INSTALL}/doc) # ---------------------------------------------------------------------- # Information Summary diff --git a/src/path-prefix.h b/src/path-prefix.h index 1c17ce2d8..96999b3cb 100644 --- a/src/path-prefix.h +++ b/src/path-prefix.h @@ -31,6 +31,7 @@ # define INKSCAPE_APPICONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/pixmaps" ) # define INKSCAPE_ATTRRELDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/attributes" ) # define INKSCAPE_BINDDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/bind" ) +# define INKSCAPE_DOCDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/doc" ) # define INKSCAPE_EXAMPLESDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/examples" ) # define INKSCAPE_EXTENSIONDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/extensions" ) # define INKSCAPE_FILTERDIR BR_DATADIR( INKSCAPE_LIBPREFIX "/share/inkscape/filters" ) @@ -55,6 +56,7 @@ # define INKSCAPE_APPICONDIR WIN32_DATADIR("pixmaps") # define INKSCAPE_ATTRRELDIR WIN32_DATADIR("attributes") # define INKSCAPE_BINDDIR WIN32_DATADIR("bind") +# define INKSCAPE_DOCDIR WIN32_DATADIR("doc") # define INKSCAPE_EXAMPLESDIR WIN32_DATADIR("examples") # define INKSCAPE_EXTENSIONDIR WIN32_DATADIR("extensions") # define INKSCAPE_FILTERDIR WIN32_DATADIR("filters") @@ -78,6 +80,7 @@ # define INKSCAPE_APPICONDIR "Contents/Resources/share/pixmaps" # define INKSCAPE_ATTRRELDIR "Contents/Resources/share/inkscape/attributes" # define INKSCAPE_BINDDIR "Contents/Resources/share/inkscape/bind" +# define INKSCAPE_DOCDIR "Contents/Resources/share/inkscape/doc" # define INKSCAPE_EXAMPLESDIR "Contents/Resources/share/inkscape/examples" # define INKSCAPE_EXTENSIONDIR "Contents/Resources/share/inkscape/extensions" # define INKSCAPE_FILTERDIR "Contents/Resources/share/inkscape/filters" @@ -101,6 +104,7 @@ # define INKSCAPE_APPICONDIR INKSCAPE_DATADIR "/pixmaps" # define INKSCAPE_ATTRRELDIR INKSCAPE_DATADIR "/inkscape/attributes" # define INKSCAPE_BINDDIR INKSCAPE_DATADIR "/inkscape/bind" +# define INKSCAPE_DOCDIR INKSCAPE_DATADIR "/inkscape/doc" # define INKSCAPE_EXAMPLESDIR INKSCAPE_DATADIR "/inkscape/examples" # define INKSCAPE_EXTENSIONDIR INKSCAPE_DATADIR "/inkscape/extensions" # define INKSCAPE_FILTERDIR INKSCAPE_DATADIR "/inkscape/filters" diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index c95f84f8e..652ebd411 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -23,6 +23,8 @@ #include "ui/dialog/aboutbox.h" +#include + #include #include #include @@ -146,201 +148,26 @@ Gtk::Widget *build_splash_widget() { * used for making widgets */ void AboutBox::initStrings() { - //############################## //# A U T H O R S //############################## - - /* This text is copied from the AUTHORS file. - * To update it, execute this snippet of sed magic in the toplevel - * source directory: - * - * sed -e 's/^\(.*\) \([^ ]*\)*$/\2_ \1/' AUTHORS - | sort - | sed -e 's/^\([^_]*\)_ \(.*\)$/\2 \1/;s/^.*$/"\0\\n"/;$s/\\n//' - | zenity --text-info - * - * and paste the result from the combo box here. - */ - std::vector authors = { - "Maximilian Albert", - "Joshua A. Andler", - "Tavmjong Bah", - "Pierre Barbry-Blot", - "Jean-François Barraud", - "Campbell Barton", - "Bill Baxter", - "John Beard", - "John Bintz", - "Arpad Biro", - "Nicholas Bishop", - "Joshua L. Blocher", - "Hanno Böck", - "Tomasz Boczkowski", - "Adrian Boguszewski", - "Henrik Bohre", - "Boldewyn", - "Daniel Borgmann", - "Bastien Bouclet", - "Hans Breuer", - "Gustav Broberg", - "Christopher Brown", - "Marcus Brubaker", - "Luca Bruno", - "Brynn (brynn@inkscapecommunity.com)", - "Nicu Buculei", - "Bulia Byak", - "Pierre Caclin", - "Ian Caldwell", - "Gail Carmichael", - "Ed Catmur", - "Chema Celorio", - "Jabiertxo Arraiza Cenoz", - "Johan Ceuppens", - "Zbigniew Chyla", - "Alexander Clausen", - "John Cliff", - "Kees Cook", - "Ben Cromwell", - "Robert Crosbie", - "Jon Cruz", - "Aurélie De-Cooman", - "Milosz Derezynski", - "Daniel Díaz", - "Bruno Dilly", - "Larry Doolittle", - "Nicolas Dufour", - "Tim Dwyer", - "Maxim V. Dziumanenko", - "Moritz Eberl", - "Johan Engelen", - "Miklos Erdelyi", - "Ulf Erikson", - "Noé Falzon", - "Sebastian Faubel", - "Frank Felfe", - "Andrew Fitzsimon", - "Edward Flick", - "Marcin Floryan", - "Ben Fowler", - "Fred", - "Cedric Gemy", - "Steren Giannini", - "Olivier Gondouin", - "Ted Gould", - "Toine de Greef", - "Michael Grosberg", - "Kris De Gussem", - "Bryce Harrington", - "Dale Harvey", - "Aurélio Adnauer Heckert", - "Carl Hetherington", - "Jos Hirth", - "Hannes Hochreiner", - "Thomas Holder", - "Joel Holdsworth", - "Christoffer Holmstedt", - "Alan Horkan", - "Karl Ove Hufthammer", - "Richard Hughes", - "Nathan Hurst", - "inductiveload", - "Thomas Ingham", - "Jean-Olivier Irisson", - "Bob Jamison", - "Ted Janeczko", - "Marc Jeanmougin", - "jEsuSdA", - "Fernando Lucchesi Bastos Jurema", - "Lauris Kaplinski", - "Lynn Kerby", - "Niko Kiirala", - "James Kilfiger", - "Nikita Kitaev", - "Jason Kivlighn", - "Adrian Knoth", - "Krzysztof Kosiński", - "Petr Kovar", - "Benoît Lavorata", - "Alex Leone", - "Julien Leray", - "Raph Levien", - "Diederik van Lierop", - "Nicklas Lindgren", - "Vitaly Lipatov", - "Ivan Louette", - "Pierre-Antoine Marc", - "Aurel-Aimé Marmion", - "Colin Marquardt", - "Craig Marshall", - "Ivan Masár", - "Dmitry G. Mastrukov", - "David Mathog", - "Matiphas", - "Michael Meeks", - "Federico Mena", - "MenTaLguY", - "Aubanel Monnier", - "Vincent Montagne", - "Tim Mooney", - "Derek P. Moore", - "Chris Morgan", - "Peter Moulder", - "Jörg Müller", - "Yukihiro Nakai", - "Victor Navez", - "Christian Neumair", - "Nick", - "Andreas Nilsson", - "Mitsuru Oka", - "Vinícius dos Santos Oliveira", - "Martin Owens", - "Alvin Penner", - "Matthew Petroff", - "Jon Phillips", - "Zdenko Podobny", - "Alexandre Prokoudine", - "Jean-René Reinhard", - "Alexey Remizov", - "Frederic Rodrigo", - "Hugo Rodrigues", - "Juarez Rudsatz", - "Xavier Conde Rueda", - "Felipe Corrêa da Silva Sanches", - "Christian Schaller", - "Marco Scholten", - "Tom von Schwerdtner", - "Danilo Šegan", - "Abhishek Sharma", - "Shivaken", - "Michael Sloan", - "John Smith", - "Sandra Snan", - "Boštjan Špetič", - "Aaron Spike", - "Kaushik Sridharan", - "Ralf Stephan", - "Dariusz Stojek", - "Martin Sucha", - "~suv", - "Pat Suwalski", - "Adib Taraben", - "Hugh Tebby", - "Jonas Termeau", - "David Turner", - "Andre Twupack", - "Aleksandar Urošević", - "Alex Valavanis", - "Joakim Verona", - "Lucas Vieites", - "Daniel Wagenaar", - "Liam P. White", - "Sebastian Wüst", - "Michael Wybrow", - "Gellule Xg", - "Daniel Yacob", - "Masatake Yamato", - "David Yip"}; + + // Create an empty vector to store the list of authors + std::vector authors; + + // Try to copy the list of authors from the "AUTHORS" file, which + // should have been installed into the share/doc directory + auto authors_filename = Glib::build_filename(INKSCAPE_DOCDIR, "AUTHORS"); + std::ifstream authors_filestream(authors_filename); + if(authors_filestream) { + std::string author_line; + + while (std::getline(authors_filestream, author_line)) { + authors.push_back(author_line); + } + } + + // Set the author credits in this dialog, using the author list set_authors(authors); //############################## @@ -368,175 +195,12 @@ void AboutBox::initStrings() { translators_text.append("\n\n\n"); } - /* This text is copied from the TRANSLATORS file. - * To update it, execute this snippet of sed magic in the toplevel - * source directory: - * - * sed -e 's/^\(.*\) \([^ ]*\)*$/\2_ \1/' TRANSLATORS - | sed -e 's/^\([^_]*\)_ \(.*\)$/\2 \1/;s/^.*$/"\0\\n"/;$s/\\n//' - | zenity --text-info - * - * and paste the result from the combo box here. - */ - gchar const *allTranslators = -"3ARRANO.com <3arrano@3arrano.com>, 2005.\n" -"Adib Taraben , 2004-2014.\n" -"Alan Monfort , 2009-2010.\n" -"Alastair McKinstry , 2000.\n" -"Aleksandar Marković , 2015.\n" -"Aleksandar Urošević , 2004-2009.\n" -"Alessio Frusciante , 2002, 2003.\n" -"Alexander Shopov , 2006.\n" -"Alexandre Prokoudine , 2005, 2010-2014.\n" -"Alexey Remizov , 2004.\n" -"Ali Ghanavatian , 2010.\n" -"Álvaro Lopes , 2001, 2002.\n" -"Andreas Hyden , 2000.\n" -"Andrius Ramanauskas , 2006.\n" -"Antonio Codazzi , 2006, 2007.\n" -"Antônio Cláudio (LedStyle) , 2006.\n" -"Amanpreet Singh Brar Alamwalia , 2005.\n" -"Arman Aksoy , 2003.\n" -"Arpad Biro , 2004, 2005.\n" -"Benedikt Roth , 2000.\n" -"Benjamin Weis , 2014.\n" -"Benno Schulenberg , 2008.\n" -"Boštjan Špetič , 2004, 2005.\n" -"Brisa Francesco , 2000.\n" -"Bruce Cowan , 2010.\n" -"bulia byak , 2004.\n" -"Chris jia , 2006.\n" -"Christian Meyer , 2000-2002.\n" -"Christian Neumair , 2002, 2003.\n" -"Christian Rose , 2000-2003.\n" -"Cristian Secară , 2010-2013.\n" -"Christophe Merlet (RedFox) , 2000-2002.\n" -"Clytie Siddall , 2004-2008.\n" -"Colin Marquardt , 2004-2006.\n" -"Cédric Gemy , 2006.\n" -"Daniel Díaz , 2004.\n" -"Didier Conchaudron , 2003.\n" -"Dimitris Spingos (Δημήτρης Σπίγγος) , 2011-2015.\n" -"Dorji Tashi , 2006.\n" -"Duarte Loreto 2002, 2003 (Maintainer).\n" -"Elias Norberg , 2009.\n" -"Equipe de Tradução Inkscape Brasil , 2007.\n" -"Fatih Demir , 2000.\n" -"Firas Hanife , 2014-2016.\n" -"Foppe Benedictus , 2007-2009.\n" -"Francesc Dorca , 2003. Traducció sodipodi.\n" -"Francisco Javier F. Serrador , 2003.\n" -"Francisco Xosé Vázquez Grandal , 2001.\n" -"Frederic Rodrigo , 2004-2005.\n" -"Ganesh Murmu , 2014.\n" -"Ge'ez Frontier Foundation , 2002.\n" -"George Boukeas , 2011.\n" -"Heiko Wöhrle , 2014.\n" -"Hleb Valoshka <375gnu@gmail.com>, 2008-2009.\n" -"Hizkuntza Politikarako Sailburuordetza , 2005.\n" -"Ilia Penev , 2006.\n" -"Ivan Masár , 2006-2014. \n" -"Ivan Řihošek , 2014.\n" -"Iñaki Larrañaga , 2006.\n" -"Jānis Eisaks , 2012-2014.\n" -"Jeffrey Steve Borbón Sanabria , 2005.\n" -"Jesper Öqvist , 2010, 2011.\n" -"Joaquim Perez i Noguer , 2008-2009.\n" -"Jörg Müller , 2005.\n" -"Jeroen van der Vegt , 2003, 2005, 2008.\n" -"Jin-Hwan Jeong , 2009.\n" -"Jonathan Ernst , 2006.\n" -"Jordi Mas i Hernàndez , 2015.\n" -"Jose Antonio Salgueiro Aquino , 2003.\n" -"Josef Vybiral , 2005-2006.\n" -"Juarez Rudsatz , 2004.\n" -"Junichi Uekawa , 2002.\n" -"Jurmey Rabgay , 2006.\n" -"Kai Lahmann , 2000.\n" -"Karl Ove Hufthammer , 2004, 2005.\n" -"KATSURAGAWA Naoki , 2006.\n" -"Keld Simonsen , 2000, 2001.\n" -"Kenji Inoue , 2006-2007.\n" -"Khandakar Mujahidul Islam , 2006.\n" -"Kingsley Turner , 2006.\n" -"Kitae , 2006.\n" -"Kjartan Maraas , 2000-2002.\n" -"Kris De Gussem , 2008-2015.\n" -"Lauris Kaplinski , 2000.\n" -"Leandro Regueiro , 2006-2008, 2010.\n" -"Liu Xiaoqin , 2008.\n" -"Louni Kandulna , 2014.\n" -"Luca Bruno , 2005.\n" -"Lucas Vieites Fariña, 2003-2013.\n" -"Mahesh subedi , 2006.\n" -"Marcin Floryan , 2016.\n" -"Maren Hachmann , 2015-2016.\n" -"Martin Srebotnjak, , 2005, 2010.\n" -"Masatake YAMATO , 2002.\n" -"Masato Hashimoto , 2009-2014.\n" -"Matiphas , 2004-2006.\n" -"Mattias Hultgren , 2005, 2006.\n" -"Maxim Dziumanenko , 2004.\n" -"Mətin Əmirov , 2003.\n" -"Mitsuru Oka , 2002.\n" -"Morphix User , 2006.\n" -"Mufit Eribol , 2000.\n" -"Muhammad Bashir Al-Noimi , 2008.\n" -"Myckel Habets , 2008.\n" -"Nasreen , 2013.\n" -"Nguyen Dinh Trung , 2007, 2008.\n" -"Nicolas Dufour , 2008-2016.\n" -"Paresh prabhu , 2013.\n" -"Pawan Chitrakar , 2006.\n" -"Przemysław Loesch , 2005.\n" -"Quico Llach , 2000. Traducció sodipodi.\n" -"Raymond Ostertag , 2002, 2003.\n" -"Riku Leino , 2006-2011.\n" -"Rune Rønde Laursen , 2006.\n" -"Ruud Steltenpool , 2006.\n" -"Sangeeta , 2011.\n" -"Savitha , 2013.\n" -"Serdar Soytetir , 2005.\n" -"shivaken , 2004.\n" -"Shyam Krishna Bal , 2006.\n" -"Simos Xenitellis , 2001, 2011.\n" -"Spyros Blanas , 2006, 2011.\n" -"Stefan Graubner , 2005.\n" -"Supranee Thirawatthanasuk , 2006.\n" -"Sushma Joshi , 2011.\n" -"Sveinn í Felli , 2014-2015.\n" -"Sylvain Chiron , 2016.\n" -"Takeshi Aihana , 2000, 2001.\n" -"Tim Sheridan , 2007-2016.\n" -"Theppitak Karoonboonyanan , 2006.\n" -"Thiago Pimentel , 2006.\n" -"Toshifumi Sato , 2005.\n" -"Jon South , 2006. \n" -"Uwe Schöler , 2006-2014.\n" -"Valek Filippov , 2000, 2003.\n" -"Victor Dachev , 2006.\n" -"Victor Westmann , 2011, 2014.\n" -"Ville Pätsi, 2013.\n" -"Vincent van Adrighem , 2003.\n" -"Vital Khilko , 2003.\n" -"Vitaly Lipatov , 2002, 2004.\n" -"vonHalenbach , 2005.\n" -"vrundeshw , 2012.\n" -"Waluyo Adi Siswanto , 2011.\n" -"Wang Li , 2002.\n" -"Wei-Lun Chao , 2006.\n" -"Wolfram Strempfer , 2006.\n" -"Xavier Conde Rueda , 2004-2008.\n" -"Yaron Shahrabani , 2009.\n" -"Yukihiro Nakai , 2000, 2003.\n" -"Yuri Beznos , 2006.\n" -"Yuri Chornoivan , 2007-2014.\n" -"Yuri Syrota , 2000.\n" -"Yves Guillou , 2004.\n" -"Zdenko Podobný , 2003, 2004." - ; - - translators_text.append(allTranslators); + auto translators_filename = Glib::build_filename(INKSCAPE_DOCDIR, "TRANSLATORS"); + + if (Glib::file_test (translators_filename, Glib::FILE_TEST_EXISTS)) { + auto all_translators = Glib::file_get_contents(translators_filename); + translators_text.append(all_translators); + } set_translator_credits(translators_text); set_license("GPL 3.0 or later"); // Overriden in next line -- cgit v1.2.3 From c45a81b10b1b75010e9b317dcdd0df102f16aeeb Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Sun, 13 Aug 2017 14:58:22 +0100 Subject: AboutBox: Add metadata --- src/ui/dialog/aboutbox.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 652ebd411..a4cb00812 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -68,29 +68,28 @@ void AboutBox::hide_about() { * Constructor */ AboutBox::AboutBox() { - // call this first initStrings(); + // Insert the Splash widget. This is placed directly into the + // content area of the dialog, whereas everything else is placed + // automatically by the Gtk::AboutDialog parent class Gtk::Widget *splash=build_splash_widget(); if (splash) { get_content_area()->pack_end(*manage(splash), true, true); splash->show_all(); } - set_logo_icon_name(INKSCAPE_ICON("inkscape")); + // Set Application metadata, which will be automatically + // inserted into text widgets by the Gtk::AboutDialog parent class set_program_name("Inkscape"); set_version(Inkscape::version_string); - + set_logo_icon_name(INKSCAPE_ICON("inkscape")); set_website("https://www.inkscape.org"); - - Gtk::Requisition minimum_size; - Gtk::Requisition natural_size; - get_preferred_size(minimum_size, natural_size); - - // allow window to shrink - set_size_request(0, 0); - set_default_size(minimum_size.width, minimum_size.height); + set_website_label(_("Inkscape website")); + set_license_type(Gtk::LICENSE_GPL_3_0); + set_comments(_("Open Source Scalable Vector Graphics Editor\n" + "Draw Freely.")); } Gtk::Widget *build_splash_widget() { @@ -203,8 +202,6 @@ void AboutBox::initStrings() { } set_translator_credits(translators_text); - set_license("GPL 3.0 or later"); // Overriden in next line - set_license_type(Gtk::LICENSE_GPL_3_0); } void AboutBox::on_response(int response_id) { -- cgit v1.2.3 From 4103e42d0efd30c1b6bb6c6fae203860adfa0a3e Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Wed, 16 Aug 2017 16:30:06 +0100 Subject: AboutBox: Tweak class structure --- src/ui/dialog/aboutbox.cpp | 66 +++++++++++++++++++++++----------------------- src/ui/dialog/aboutbox.h | 11 ++++++++ 2 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index a4cb00812..c537013ab 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -47,10 +47,6 @@ namespace Inkscape { namespace UI { namespace Dialog { - - -static Gtk::Widget *build_splash_widget(); - static AboutBox *window=NULL; void AboutBox::show_about() { @@ -67,17 +63,19 @@ void AboutBox::hide_about() { /** * Constructor */ -AboutBox::AboutBox() { +AboutBox::AboutBox() + : _splash_widget(nullptr) +{ // call this first initStrings(); // Insert the Splash widget. This is placed directly into the // content area of the dialog, whereas everything else is placed // automatically by the Gtk::AboutDialog parent class - Gtk::Widget *splash=build_splash_widget(); - if (splash) { - get_content_area()->pack_end(*manage(splash), true, true); - splash->show_all(); + build_splash_widget(); + if (_splash_widget) { + get_content_area()->pack_end(*manage(_splash_widget), true, true); + _splash_widget->show_all(); } // Set Application metadata, which will be automatically @@ -92,7 +90,10 @@ AboutBox::AboutBox() { "Draw Freely.")); } -Gtk::Widget *build_splash_widget() { +/** + * @brief Create a Gtk::AspectFrame containing the splash image + */ +void AboutBox::build_splash_widget() { /* TRANSLATORS: This is the filename of the `About Inkscape' picture in the `screens' directory. Thus the translation of "about.svg" should be the filename of its translated version, e.g. about.zh.svg for Chinese. @@ -113,38 +114,37 @@ Gtk::Widget *build_splash_widget() { // Create an Inkscape document from the 'About Inkscape' picture SPDocument *doc=SPDocument::createNewDoc (about.c_str(), TRUE); - g_return_val_if_fail(doc != NULL, NULL); - SPObject *version = doc->getObjectById("version"); - if ( version && SP_IS_TEXT(version) ) { - sp_te_set_repr_text_multiline (SP_TEXT (version), Inkscape::version_string); - } - doc->ensureUpToDate(); + // Leave _splash_widget as a nullptr if there is no document + if(doc) { + SPObject *version = doc->getObjectById("version"); + if ( version && SP_IS_TEXT(version) ) { + sp_te_set_repr_text_multiline (SP_TEXT (version), Inkscape::version_string); + } + doc->ensureUpToDate(); - // TODO: Return a Gdk::Pixbuf instead of a widget, for better integration - // with the parent Gtk::AboutDialog class - GtkWidget *v=sp_svg_view_widget_new(doc); + // TODO: Return a Gdk::Pixbuf instead of a widget, for better integration + // with the parent Gtk::AboutDialog class + GtkWidget *v=sp_svg_view_widget_new(doc); - // temporary hack: halve the dimensions so the dialog will fit - double width=doc->getWidth().value("px") / 2; - double height=doc->getHeight().value("px") / 2; - - doc->doUnref(); + // temporary hack: halve the dimensions so the dialog will fit + double width=doc->getWidth().value("px") / 2; + double height=doc->getHeight().value("px") / 2; - SP_SVG_VIEW_WIDGET(v)->setResize(false, static_cast(width), static_cast(height)); + doc->doUnref(); - Gtk::AspectFrame *frame=new Gtk::AspectFrame(); - frame->unset_label(); - frame->set_shadow_type(Gtk::SHADOW_NONE); - frame->property_ratio() = width / height; - frame->add(*manage(Glib::wrap(v))); + SP_SVG_VIEW_WIDGET(v)->setResize(false, static_cast(width), static_cast(height)); - return frame; + _splash_widget = new Gtk::AspectFrame(); + _splash_widget->unset_label(); + _splash_widget->set_shadow_type(Gtk::SHADOW_NONE); + _splash_widget->property_ratio() = width / height; + _splash_widget->add(*manage(Glib::wrap(v))); + } } /** - * This method must be called before any of the texts are - * used for making widgets + * @brief Read the author and translator credits from file */ void AboutBox::initStrings() { //############################## diff --git a/src/ui/dialog/aboutbox.h b/src/ui/dialog/aboutbox.h index 1611587a1..54f8c3ebc 100644 --- a/src/ui/dialog/aboutbox.h +++ b/src/ui/dialog/aboutbox.h @@ -17,6 +17,10 @@ #include +namespace Gtk { +class AspectFrame; +} + namespace Inkscape { namespace UI { namespace Dialog { @@ -31,8 +35,15 @@ public: private: AboutBox(); + + /** A widget containing an SVG "splash screen" + * image to display in the content area of the dialo + */ + Gtk::AspectFrame *_splash_widget; void initStrings(); + void build_splash_widget(); + void on_response(int response_id) override; }; -- cgit v1.2.3 From e89f17cdaf2757eb522579f68dc7b8a3197b0d6b Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Wed, 16 Aug 2017 19:04:47 +0100 Subject: AboutBox: Add placeholder Copyright string. Need to confirm contents --- src/ui/dialog/aboutbox.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index c537013ab..569056ee1 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -80,14 +80,15 @@ AboutBox::AboutBox() // Set Application metadata, which will be automatically // inserted into text widgets by the Gtk::AboutDialog parent class - set_program_name("Inkscape"); - set_version(Inkscape::version_string); - set_logo_icon_name(INKSCAPE_ICON("inkscape")); - set_website("https://www.inkscape.org"); - set_website_label(_("Inkscape website")); - set_license_type(Gtk::LICENSE_GPL_3_0); - set_comments(_("Open Source Scalable Vector Graphics Editor\n" - "Draw Freely.")); + set_program_name ( "Inkscape"); + set_version ( Inkscape::version_string); + set_logo_icon_name( INKSCAPE_ICON("inkscape")); + set_website ( "https://www.inkscape.org"); + set_website_label (_("Inkscape website")); + set_license_type (Gtk::LICENSE_GPL_3_0); + set_copyright (_("© 2017 Inkscape Developers")); + set_comments (_("Open Source Scalable Vector Graphics Editor\n" + "Draw Freely.")); } /** -- cgit v1.2.3 From 152db3184d26d48b0ac476637a15d356ebea0d41 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 18 Dec 2017 14:54:11 +0100 Subject: Reduce with of +/- buttons. Reduce width of Fill and Stroke dialog. --- share/ui/style.css | 14 +++++++++++++- src/ui/widget/color-notebook.cpp | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/share/ui/style.css b/share/ui/style.css index 7c3487673..7774ab30e 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -96,5 +96,17 @@ combobox window.popup scrolledwindow treeview separator { /* Keep pallete scrollbar from generating warnings. */ #PreviewHolderScrolledWindow .vertical slider { - min-height: 15px; + min-height: 15px; +} + +/* Reduce width of Fill and Stroke dialog */ +#ColorModeButton { + padding-left: 0; + padding-right: 0; +} + +/* Reduce width of +/- buttons. */ +.up, .down { + padding-left: 0; + padding-right: 0; } diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index bd4b21bdb..d60150767 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -321,9 +321,11 @@ void ColorNotebook::_addPage(Page &page) Glib::ustring mode_name = page.selector_factory->modeName(); Gtk::Widget *tab_label = Gtk::manage(new Gtk::Label(mode_name)); + tab_label->set_name("ColorModeLabel"); gint page_num = gtk_notebook_append_page(GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); + gtk_widget_set_name(_buttons[page_num], "ColorModeButton"); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); if (page_num > 0) { auto g = Glib::wrap(GTK_RADIO_BUTTON(_buttons[0]))->get_group(); -- cgit v1.2.3 From 9ceb238f8a4f5527c3621740e75713ea79eceebc Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 18 Dec 2017 15:50:42 +0100 Subject: Replace GimpSpinScale by InkSpinScale. --- share/ui/style.css | 21 + src/extension/param/float.cpp | 5 +- src/extension/param/int.cpp | 5 +- src/ui/CMakeLists.txt | 6 +- src/ui/dialog/filter-effects-dialog.cpp | 11 +- src/ui/widget/filter-effect-chooser.cpp | 2 +- src/ui/widget/ink-spinscale.cpp | 245 +++++++ src/ui/widget/ink-spinscale.h | 78 +++ src/ui/widget/object-composite-settings.cpp | 2 - src/ui/widget/object-composite-settings.h | 2 +- src/ui/widget/spin-scale.cpp | 85 ++- src/ui/widget/spin-scale.h | 30 +- src/widgets/ege-adjustment-action.cpp | 10 +- src/widgets/gimp/CMakeLists.txt | 2 - src/widgets/gimp/gimpspinscale.c | 969 ---------------------------- src/widgets/gimp/gimpspinscale.h | 82 --- 16 files changed, 429 insertions(+), 1126 deletions(-) create mode 100644 src/ui/widget/ink-spinscale.cpp create mode 100644 src/ui/widget/ink-spinscale.h delete mode 100644 src/widgets/gimp/gimpspinscale.c delete mode 100644 src/widgets/gimp/gimpspinscale.h diff --git a/share/ui/style.css b/share/ui/style.css index 7774ab30e..ff353ebfe 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -110,3 +110,24 @@ combobox window.popup scrolledwindow treeview separator { padding-left: 0; padding-right: 0; } + +/* InkSpinScale */ +#InkSpinScale { + background: #eee; + border-color: #999; + border-style: solid; + border-width: 1px; + border-radius: 3px; +} + +#InkSpinScale spinbutton { + border-color: #eee; + border-width: 0 0 0 1px; + border-radius: 0 3px 3px 0; + box-shadow: none; + padding: 0 0 0 1px; +} + +#InkSpinScale box.active { + box-shadow: 0 0 0 1px rgb(74,144,217); +} diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp index 69283a572..1dd3f073b 100644 --- a/src/extension/param/float.cpp +++ b/src/extension/param/float.cpp @@ -178,7 +178,10 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod if (_mode == FULL) { - UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_text, fadjust, _precision); + Glib::ustring text; + if (_text != NULL) + text = _text; + UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(text, fadjust, _precision); scale->set_size_request(400, -1); scale->show(); hbox->pack_start(*scale, true, true); diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp index 357f98590..9ad9b591c 100644 --- a/src/extension/param/int.cpp +++ b/src/extension/param/int.cpp @@ -159,7 +159,10 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal if (_mode == FULL) { - UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_text, fadjust, 0); + Glib::ustring text; + if (_text != NULL) + text = _text; + UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(text, fadjust, 0); scale->set_size_request(400, -1); scale->show(); hbox->pack_start(*scale, true, true); diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index be13d9b1b..fecb14a91 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -140,6 +140,8 @@ set(ui_SRC widget/highlight-picker.cpp widget/imageicon.cpp widget/imagetoggler.cpp + widget/ink-select-one-action.cpp + widget/ink-spinscale.cpp widget/insertordericon.cpp widget/labelled.cpp widget/layer-selector.cpp @@ -147,7 +149,6 @@ set(ui_SRC widget/licensor.cpp widget/notebook-page.cpp widget/object-composite-settings.cpp - widget/ink-select-one-action.cpp widget/page-sizer.cpp widget/panel.cpp widget/point.cpp @@ -333,13 +334,14 @@ set(ui_SRC widget/insertordericon.h widget/imageicon.h widget/imagetoggler.h + widget/ink-select-one-action.h + widget/ink-spinscale.h widget/labelled.h widget/layer-selector.h widget/layertypeicon.h widget/licensor.h widget/notebook-page.h widget/object-composite-settings.h - widget/ink-select-one-action.h widget/page-sizer.h widget/panel.h widget/point.h diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index e60785f57..9764618ec 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -842,7 +842,10 @@ public: SpinScale* add_spinscale(double def, const SPAttributeEnum attr, const Glib::ustring& label, const double lo, const double hi, const double step_inc, const double climb, const int digits, char* tip_text = NULL) { - SpinScale* spinslider = new SpinScale("", def, lo, hi, step_inc, climb, digits, attr, tip_text); + Glib::ustring tip_text2; + if (tip_text) + tip_text2 = tip_text; + SpinScale* spinslider = new SpinScale("", def, lo, hi, step_inc, climb, digits, attr, tip_text2); add_widget(spinslider, label); add_attr_widget(spinslider); return spinslider; @@ -850,8 +853,10 @@ public: // DualSpinScale DualSpinScale* add_dualspinscale(const SPAttributeEnum attr, const Glib::ustring& label, - const double lo, const double hi, const double step_inc, - const double climb, const int digits, char* tip_text1 = NULL, char* tip_text2 = NULL) + const double lo, const double hi, const double step_inc, + const double climb, const int digits, + const Glib::ustring tip_text1 = "", + const Glib::ustring tip_text2 = "") { DualSpinScale* dss = new DualSpinScale("", "", lo, lo, hi, step_inc, climb, digits, attr, tip_text1, tip_text2); add_widget(dss, label); diff --git a/src/ui/widget/filter-effect-chooser.cpp b/src/ui/widget/filter-effect-chooser.cpp index 7a9d512ac..30506851c 100644 --- a/src/ui/widget/filter-effect-chooser.cpp +++ b/src/ui/widget/filter-effect-chooser.cpp @@ -22,7 +22,7 @@ SimpleFilterModifier::SimpleFilterModifier(int flags) _lb_blur(_("_Blur:")), _lb_blur_unit(_("%")), _blend(BlendModeConverter, SP_ATTR_INVALID, false), - _blur(_("Blur (%)"), 0, 0, 100, 1, 0.01, 1) + _blur(_("Blur (%)"), 0, 0, 100, 1, 1, 1) { set_name("SimpleFilterModifier"); diff --git a/src/ui/widget/ink-spinscale.cpp b/src/ui/widget/ink-spinscale.cpp new file mode 100644 index 000000000..4fe69633f --- /dev/null +++ b/src/ui/widget/ink-spinscale.cpp @@ -0,0 +1,245 @@ + +#include "ink-spinscale.h" +#include +#include +#include + +#include + +#include + +#include + +// Constructor for Gtk::Range is protected... must derive a new class. +InkRange::InkRange(Glib::RefPtr adjustment, Gtk::SpinButton* spinbutton) + : Glib::ObjectBase("InkRange") + , Gtk::Range() + , _spinbutton(spinbutton) + , _dragging(false) + , _drag_start(0) + , _drag_offset(0) +{ + set_name("InkRange"); + set_adjustment(adjustment); + // std::cout << "GType name: " << G_OBJECT_TYPE_NAME(gobj()) << std::endl; +} + +void +InkRange::set_label(Glib::ustring label) { + _label = label; +} + +bool +InkRange::on_draw(const::Cairo::RefPtr<::Cairo::Context>& cr) { + + // std::cout << "\nInkRange::on_draw" << std::endl; + + // Get our own style info... + // auto style = get_style_context(); + // auto state = style->get_state(); + // std::cout << "color: " << style->get_color( state ).to_string() << std::endl; + // std::cout << "background: " << style->get_background_color( state ).to_string() << std::endl; + // std::cout << "border: " << style->get_border_color( state ).to_string() << std::endl; + + // Get SpinButton style info... + auto style_spin = _spinbutton->get_style_context(); + auto state_spin = style_spin->get_state(); + Gdk::RGBA text_color = style_spin->get_color( state_spin ); + + // Create Pango layout. + auto layout_label = create_pango_layout(_label); + layout_label->set_ellipsize( Pango::ELLIPSIZE_END ); + layout_label->set_width(PANGO_SCALE * get_width()); + + // Get y location of SpinButton text (to match vertical position of SpinButton text). + int x, y; + _spinbutton->get_layout_offsets(x, y); + + // Render text in normal text color. + cr->save(); + Gdk::Cairo::set_source_rgba(cr, text_color); + cr->set_source_rgba(0, 0, 0, 1); + cr->move_to(5, y ); + layout_label->show_in_cairo_context(cr); + cr->restore(); + + // Fill widget proportional to value. + double fraction = get_fraction(); + + // Render bar (over normal text to reduce blurriness). + Gdk::RGBA fill_color("rgba(74,144,217,1.0)"); + Gdk::Cairo::set_source_rgba(cr, fill_color); + cr->rectangle(0, 0, get_width() * fraction, get_height()); + cr->fill_preserve(); // Save rectangle for clipping text. + + // Render text, clipped, in white over bar (TODO: use same color as SpinButton progress bar). + cr->save(); + cr->clip(); + cr->set_source_rgba(1, 1, 1, 1); + cr->move_to(5, y); + layout_label->show_in_cairo_context(cr); + cr->restore(); + + return false; +} + +bool +InkRange::on_button_press_event(GdkEventButton* button_event) { + + _dragging = true; + + if (! (button_event->state & GDK_MOD1_MASK) ) { + set_adjustment_value(button_event->x); + } + + // Dragging must be initialized after any adjustment due to button press. + _dragging = true; + _drag_start = button_event->x; + _drag_offset = get_width() * get_fraction(); + + return true; +} + +bool +InkRange::on_button_release_event(GdkEventButton* button_event) { + + _dragging = false; + return true; +} + +bool +InkRange::on_motion_notify_event(GdkEventMotion* motion_event) { + + double x = motion_event->x; + double y = motion_event->y; + + if (_dragging) { + + if (! (motion_event->state & GDK_MOD1_MASK) ) { + // Absolute change + set_adjustment_value(x); + } else { + // Relative change + double xx = (_drag_offset + (x - _drag_start) * 0.1); + set_adjustment_value(xx); + } + return true; + } + + if (! (motion_event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK))) { + + auto display = get_display(); + auto cursor = Gdk::Cursor::create(display, Gdk::SB_DOWN_ARROW); + // Get Gdk::window (not Gtk::window).. set cursor for entire window. + // Would need to unset with leave event. + // get_window()->set_cursor( cursor ); + + // Can't see how to do this the C++ way since GdkEventMotion + // is a structure with a C window member. There is a gdkmm + // wrapping function for Gdk::EventMotion but only in unstable. + gdk_window_set_cursor( motion_event->window, cursor->gobj() ); + } + + return false; +} + +double +InkRange::get_fraction() { + + Glib::RefPtr adjustment = get_adjustment(); + double upper = adjustment->get_upper(); + double lower = adjustment->get_lower(); + double value = adjustment->get_value(); + double fraction = (value - lower)/(upper - lower); + + return fraction; +} + +void +InkRange::set_adjustment_value(double x) { + + Glib::RefPtr adjustment = get_adjustment(); + double upper = adjustment->get_upper(); + double lower = adjustment->get_lower(); + double fraction = x / (double)get_width(); + double value = fraction * (upper - lower) + lower; + adjustment->set_value( value ); +} + +/*******************************************************************/ + +InkSpinScale::InkSpinScale(double value, double lower, + double upper, double step_increment, + double page_increment, double page_size) +{ + set_name("InkSpinScale"); + + g_assert (upper - lower > 0); + + _adjustment = Gtk::Adjustment::create(value, + lower, + upper, + step_increment, + page_increment, + page_size); + + _spinbutton = Gtk::manage(new Gtk::SpinButton(_adjustment)); + _spinbutton->set_numeric(); + _spinbutton->signal_key_release_event().connect(sigc::mem_fun(*this,&InkSpinScale::on_key_release_event),false); + _range = Gtk::manage(new InkRange(_adjustment, _spinbutton)); + pack_end( *_spinbutton, Gtk::PACK_SHRINK ); + pack_end( *_range, Gtk::PACK_EXPAND_WIDGET ); +} + +InkSpinScale::InkSpinScale(Glib::RefPtr adjustment) + : _adjustment(adjustment) +{ + set_name("InkSpinScale"); + + g_assert (_adjustment->get_upper() - _adjustment->get_lower() > 0); + + _spinbutton = Gtk::manage(new Gtk::SpinButton(_adjustment)); + _spinbutton->set_numeric(); + _range = Gtk::manage(new InkRange(_adjustment, _spinbutton)); + pack_end( *_spinbutton, Gtk::PACK_SHRINK ); + pack_end( *_range, Gtk::PACK_EXPAND_WIDGET ); +} + +void +InkSpinScale::set_label(Glib::ustring label) { + _range->set_label(label); +} + +void +InkSpinScale::set_digits(int digits) { + _spinbutton->set_digits(digits); +} + +int +InkSpinScale::get_digits() const { + return _spinbutton->get_digits(); +} + +void +InkSpinScale::set_focus_widget(GtkWidget * focus_widget) { + _focus_widget = focus_widget; +} + +// Return focus to canvas. +bool +InkSpinScale::on_key_release_event(GdkEventKey* key_event) { + + switch (key_event->keyval) { + case GDK_KEY_Escape: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + { + if (_focus_widget) { + gtk_widget_grab_focus( _focus_widget ); + } + } + break; + } + + return false; +} diff --git a/src/ui/widget/ink-spinscale.h b/src/ui/widget/ink-spinscale.h new file mode 100644 index 000000000..9b67d3891 --- /dev/null +++ b/src/ui/widget/ink-spinscale.h @@ -0,0 +1,78 @@ +#ifndef INK_SPINSCALE_H +#define INK_SPINSCALE_H + +#include + +#include +#include + +namespace Gtk { + class SpinButton; +} + +class InkRange : public Gtk::Range +{ + public: + InkRange(Glib::RefPtr, Gtk::SpinButton* spinbutton); + ~InkRange() {}; + + void set_label(Glib::ustring label); + + bool on_draw(const::Cairo::RefPtr<::Cairo::Context>& cr) override; + + protected: + + bool on_button_press_event(GdkEventButton* button_event) override; + bool on_button_release_event(GdkEventButton* button_event) override; + bool on_motion_notify_event(GdkEventMotion* motion_event) override; + + private: + + double get_fraction(); + void set_adjustment_value(double x); + + Gtk::SpinButton * _spinbutton; // Needed to get placement/text color. + Glib::ustring _label; + + bool _dragging; + double _drag_start; + double _drag_offset; +}; + +class InkSpinScale : public Gtk::Box +{ + public: + + // Create an InkSpinScale with a new adjustment. + InkSpinScale(double value, + double lower, + double upper, + double step_increment = 1, + double page_increment = 10, + double page_size = 0); + + // Create an InkSpinScale with a preexisting adjustment. + InkSpinScale(Glib::RefPtr); + + virtual ~InkSpinScale() {}; + + void set_label(Glib::ustring label); + void set_digits(int digits); + int get_digits() const; + void set_focus_widget(GtkWidget *focus_widget); + Glib::RefPtr get_adjustment() { return _adjustment; }; + + protected: + + InkRange* _range; + Gtk::SpinButton* _spinbutton; + Glib::RefPtr _adjustment; + GtkWidget* _focus_widget; + + bool on_key_release_event(GdkEventKey* key_event) override; + + private: + +}; + +#endif // INK_SPINSCALE_H diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index fa3f6e905..ae01c049b 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -52,8 +52,6 @@ ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char co pack_start(_opacity_vbox, false, false, 2); _opacity_vbox.pack_start(_opacity_scale); - _opacity_scale.set_appearance("compact"); - _opacity_scale.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); SPDesktop *desktop = SP_ACTIVE_DESKTOP; diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h index d7525093f..eff1ba800 100644 --- a/src/ui/widget/object-composite-settings.h +++ b/src/ui/widget/object-composite-settings.h @@ -46,7 +46,7 @@ private: Glib::ustring _opacity_tag; Gtk::VBox _opacity_vbox; - Inkscape::UI::Widget::SpinScale _opacity_scale; + SpinScale _opacity_scale; StyleSubject *_subject; diff --git a/src/ui/widget/spin-scale.cpp b/src/ui/widget/spin-scale.cpp index c658b4756..94b178a43 100644 --- a/src/ui/widget/spin-scale.cpp +++ b/src/ui/widget/spin-scale.cpp @@ -2,6 +2,7 @@ * Author: * * Copyright (C) 2012 Author + * 2017 Tavmjong Bah * * Released under GNU GPL. Read the file 'COPYING' for more information. */ @@ -11,50 +12,49 @@ #include #include -#include "widgets/gimp/gimpspinscale.h" - namespace Inkscape { namespace UI { namespace Widget { -SpinScale::SpinScale(const char* label, double value, double lower, double upper, double step_inc, - double /*climb_rate*/, int digits, const SPAttributeEnum a, const char* tip_text) +SpinScale::SpinScale(const Glib::ustring label, double value, + double lower, double upper, + double step_increment, double page_increment, int digits, + const SPAttributeEnum a, const Glib::ustring tip_text) : AttrWidget(a, value) + , _inkspinscale(value, lower, upper, step_increment, page_increment, 0) { set_name("SpinScale"); - _adjustment = Gtk::Adjustment::create(value, lower, upper, step_inc); - _spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits); - signal_value_changed().connect(signal_attr_changed().make_slot()); + _inkspinscale.set_label (label); + _inkspinscale.set_digits (digits); + _inkspinscale.set_tooltip_text (tip_text); - pack_start(*Gtk::manage(Glib::wrap(_spinscale))); + _adjustment = _inkspinscale.get_adjustment(); - if (tip_text){ - gtk_widget_set_tooltip_text( _spinscale, tip_text ); - } + signal_value_changed().connect(signal_attr_changed().make_slot()); + + pack_start(_inkspinscale); show_all_children(); } -SpinScale::SpinScale(const char* label, - Glib::RefPtr adj, - int digits, - const SPAttributeEnum a, - const char* tip_text) - : AttrWidget(a, 0.0), - _adjustment(adj) - +SpinScale::SpinScale(const Glib::ustring label, + Glib::RefPtr adjustment, int digits, + const SPAttributeEnum a, const Glib::ustring tip_text) + : AttrWidget(a, 0.0) + , _inkspinscale(adjustment) { + set_name("SpinScale"); - _spinscale = gimp_spin_scale_new (_adjustment->gobj(), label, digits); + _inkspinscale.set_label (label); + _inkspinscale.set_digits (digits); + _inkspinscale.set_tooltip_text (tip_text); + + _adjustment = _inkspinscale.get_adjustment(); signal_value_changed().connect(signal_attr_changed().make_slot()); - pack_start(*Gtk::manage(Glib::wrap(_spinscale))); - - if (tip_text){ - gtk_widget_set_tooltip_text( _spinscale, tip_text ); - } + pack_start(_inkspinscale); show_all_children(); } @@ -63,16 +63,16 @@ Glib::ustring SpinScale::get_as_attribute() const { const double val = _adjustment->get_value(); - //if(_spin.get_digits() == 0) - // return Glib::Ascii::dtostr((int)val); - //else + if( _inkspinscale.get_digits() == 0) + return Glib::Ascii::dtostr((int)val); + else return Glib::Ascii::dtostr(val); } void SpinScale::set_from_attribute(SPObject* o) { const gchar* val = attribute_value(o); - if(val) + if (val) _adjustment->set_value(Glib::Ascii::strtod(val)); else _adjustment->set_value(get_default()->as_double()); @@ -95,13 +95,7 @@ void SpinScale::set_value(const double val) void SpinScale::set_focuswidget(GtkWidget *widget) { - gimp_spin_scale_set_focuswidget(_spinscale, widget); -} - - -void SpinScale::set_appearance(const gchar* appearance) -{ - gimp_spin_scale_set_appearance(_spinscale, appearance); + _inkspinscale.set_focus_widget(widget); } const decltype(SpinScale::_adjustment) SpinScale::get_adjustment() const @@ -115,11 +109,14 @@ decltype(SpinScale::_adjustment) SpinScale::get_adjustment() } -DualSpinScale::DualSpinScale(const char* label1, const char* label2, double value, double lower, double upper, double step_inc, - double climb_rate, int digits, const SPAttributeEnum a, char* tip_text1, char* tip_text2) +DualSpinScale::DualSpinScale(const Glib::ustring label1, const Glib::ustring label2, + double value, double lower, double upper, + double step_increment, double page_increment, int digits, + const SPAttributeEnum a, + const Glib::ustring tip_text1, const Glib::ustring tip_text2) : AttrWidget(a), - _s1(label1, value, lower, upper, step_inc, climb_rate, digits, SP_ATTR_INVALID, tip_text1), - _s2(label2, value, lower, upper, step_inc, climb_rate, digits, SP_ATTR_INVALID, tip_text2), + _s1(label1, value, lower, upper, step_increment, page_increment, digits, SP_ATTR_INVALID, tip_text1), + _s2(label2, value, lower, upper, step_increment, page_increment, digits, SP_ATTR_INVALID, tip_text2), //TRANSLATORS: "Link" means to _link_ two sliders together _link(C_("Sliders", "Link")) { @@ -132,7 +129,7 @@ DualSpinScale::DualSpinScale(const char* label1, const char* label2, double valu _link.signal_toggled().connect(sigc::mem_fun(*this, &DualSpinScale::link_toggled)); - Gtk::VBox* vb = Gtk::manage(new Gtk::VBox); + Gtk::Box* vb = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL)); vb->add(_s1); vb->add(_s2); pack_start(*vb); @@ -199,12 +196,6 @@ SpinScale& DualSpinScale::get_SpinScale2() return _s2; } -/*void DualSpinScale::remove_scale() -{ - _s1.remove_scale(); - _s2.remove_scale(); -}*/ - void DualSpinScale::link_toggled() { _s2.set_sensitive(!_link.get_active()); diff --git a/src/ui/widget/spin-scale.h b/src/ui/widget/spin-scale.h index 33731f256..123f527bb 100644 --- a/src/ui/widget/spin-scale.h +++ b/src/ui/widget/spin-scale.h @@ -2,6 +2,7 @@ * Author: * * Copyright (C) 2012 Author + * 2017 Tavmjong Bah * * Released under GNU GPL. Read the file 'COPYING' for more information. */ @@ -16,27 +17,30 @@ #include #include #include -#include "spinbutton.h" #include "attr-widget.h" +#include "ink-spinscale.h" namespace Inkscape { namespace UI { namespace Widget { /** - * Wrap the gimpspinscale class - * A combo widget with label, scale slider, spinbutton, and adjustment + * Wrap the InkSpinScale class and attach an attribute. + * A combo widget with label, scale slider, spinbutton, and adjustment; */ class SpinScale : public Gtk::Box, public AttrWidget { public: - SpinScale(const char* label, double value, double lower, double upper, double step_inc, double climb_rate, - int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL); + SpinScale(const Glib::ustring label, double value, + double lower, double upper, + double step_increment, double page_increment, int digits, + const SPAttributeEnum a = SP_ATTR_INVALID, const Glib::ustring tip_text = ""); - SpinScale(const char* label, - Glib::RefPtr adj, - int digits, const SPAttributeEnum a = SP_ATTR_INVALID, const char* tip_text = NULL); + // Used by extensions + SpinScale(const Glib::ustring label, + Glib::RefPtr adjustment, int digits, + const SPAttributeEnum a = SP_ATTR_INVALID, const Glib::ustring tip_text = ""); virtual Glib::ustring get_as_attribute() const; virtual void set_from_attribute(SPObject*); @@ -46,11 +50,10 @@ public: double get_value() const; void set_value(const double); void set_focuswidget(GtkWidget *widget); - void set_appearance(const gchar* appearance); private: Glib::RefPtr _adjustment; - GtkWidget *_spinscale; + InkSpinScale _inkspinscale; public: const decltype(_adjustment) get_adjustment() const; @@ -66,8 +69,11 @@ public: class DualSpinScale : public Gtk::Box, public AttrWidget { public: - DualSpinScale(const char* label1, const char* label2, double value, double lower, double upper, double step_inc, - double climb_rate, int digits, const SPAttributeEnum, char* tip_text1, char* tip_text2); + DualSpinScale(const Glib::ustring label1, const Glib::ustring label2, + double value, double lower, double upper, + double step_increment, double page_increment, int digits, + const SPAttributeEnum a, + const Glib::ustring tip_text1, const Glib::ustring tip_text2); virtual Glib::ustring get_as_attribute() const; virtual void set_from_attribute(SPObject*); diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp index 3d46fd81d..0f0d205e2 100644 --- a/src/widgets/ege-adjustment-action.cpp +++ b/src/widgets/ege-adjustment-action.cpp @@ -46,12 +46,12 @@ #include #include +#include #include #include "widgets/ege-adjustment-action.h" -#include "gimp/gimpspinscale.h" #include "ui/icon-names.h" - +#include "ui/widget/ink-spinscale.h" static void ege_adjustment_action_finalize( GObject* object ); static void ege_adjustment_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec ); @@ -820,7 +820,11 @@ static GtkWidget* create_tool_item( GtkAction* action ) if ( act->private_data->appearanceMode == APPEARANCE_FULL ) { /* Slider */ - spinbutton = gimp_spin_scale_new (act->private_data->adj, g_value_get_string( &value ), 0); + InkSpinScale* inkspinscale = + new InkSpinScale(Glib::wrap(act->private_data->adj)); + inkspinscale->set_label( g_value_get_string( &value )); + inkspinscale->set_digits(0); + spinbutton = (GtkWidget*)inkspinscale->gobj(); gtk_widget_set_size_request(spinbutton, 100, -1); } else if ( act->private_data->appearanceMode == APPEARANCE_MINIMAL ) { diff --git a/src/widgets/gimp/CMakeLists.txt b/src/widgets/gimp/CMakeLists.txt index 7b3e834e3..aa886cc67 100644 --- a/src/widgets/gimp/CMakeLists.txt +++ b/src/widgets/gimp/CMakeLists.txt @@ -1,12 +1,10 @@ set(gimpwidgets_SRC gimpcolorwheel.c - gimpspinscale.c ruler.cpp # ------- # Headers gimpcolorwheel.h - gimpspinscale.h ruler.h ) diff --git a/src/widgets/gimp/gimpspinscale.c b/src/widgets/gimp/gimpspinscale.c deleted file mode 100644 index 8d8c6c935..000000000 --- a/src/widgets/gimp/gimpspinscale.c +++ /dev/null @@ -1,969 +0,0 @@ -/* GIMP - The GNU Image Manipulation Program - * Copyright (C) 1995 Spencer Kimball and Peter Mattis - * - * gimpspinscale.c - * Copyright (C) 2010 Michael Natterer - * 2012 Øyvind Kolås - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include - -#include "gimpspinscale.h" - - -enum -{ - PROP_0, - PROP_LABEL, - PROP_FOCUS_WIDGET -}; - -typedef enum -{ - TARGET_NUMBER, - TARGET_UPPER, - TARGET_LOWER, - TARGET_NONE -} SpinScaleTarget; - -typedef enum -{ - APPEARANCE_FULL = 1, /* Full size suitable for tablets */ - APPEARANCE_COMPACT, /* Compact, suitable for desktops with mouse control */ -} SpinScaleAppearance; - -typedef struct _GimpSpinScalePrivate GimpSpinScalePrivate; - -struct _GimpSpinScalePrivate -{ - gchar *label; - - gboolean scale_limits_set; - gdouble scale_lower; - gdouble scale_upper; - gdouble gamma; - - PangoLayout *layout; - gboolean changing_value; - gboolean relative_change; - gdouble start_x; - gdouble start_value; - - GtkWidget* focusWidget; - gboolean transferFocus; - SpinScaleAppearance appearanceMode; -}; - -#define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ - GIMP_TYPE_SPIN_SCALE, \ - GimpSpinScalePrivate)) - - -static void gimp_spin_scale_dispose (GObject *object); -static void gimp_spin_scale_finalize (GObject *object); -static void gimp_spin_scale_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); -static void gimp_spin_scale_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec); - -static void gimp_spin_scale_style_set (GtkWidget *widget, - GtkStyle *prev_style); - -static void gimp_spin_scale_get_preferred_width (GtkWidget *widget, - gint *minimum_width, - gint *natural_width); -static void gimp_spin_scale_get_preferred_height (GtkWidget *widget, - gint *minimum_width, - gint *natural_width); -static gboolean gimp_spin_scale_draw (GtkWidget *widget, - cairo_t *cr); - -static gboolean gimp_spin_scale_button_press (GtkWidget *widget, - GdkEventButton *event); -static gboolean gimp_spin_scale_button_release (GtkWidget *widget, - GdkEventButton *event); -static gboolean gimp_spin_scale_motion_notify (GtkWidget *widget, - GdkEventMotion *event); -static gboolean gimp_spin_scale_leave_notify (GtkWidget *widget, - GdkEventCrossing *event); -static gboolean gimp_spin_scale_keypress( GtkWidget *widget, - GdkEventKey *event); - -static void gimp_spin_scale_defocus( GtkSpinButton *spin_button ); - -static void gimp_spin_scale_value_changed (GtkSpinButton *spin_button); - - -G_DEFINE_TYPE (GimpSpinScale, gimp_spin_scale, GTK_TYPE_SPIN_BUTTON); - -#define parent_class gimp_spin_scale_parent_class - - -static void -gimp_spin_scale_class_init (GimpSpinScaleClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); - GtkSpinButtonClass *spin_button_class = GTK_SPIN_BUTTON_CLASS (klass); - - object_class->dispose = gimp_spin_scale_dispose; - object_class->finalize = gimp_spin_scale_finalize; - object_class->set_property = gimp_spin_scale_set_property; - object_class->get_property = gimp_spin_scale_get_property; - - widget_class->style_set = gimp_spin_scale_style_set; - widget_class->get_preferred_width = gimp_spin_scale_get_preferred_width; - widget_class->get_preferred_height = gimp_spin_scale_get_preferred_height; - widget_class->draw = gimp_spin_scale_draw; - widget_class->button_press_event = gimp_spin_scale_button_press; - widget_class->button_release_event = gimp_spin_scale_button_release; - widget_class->motion_notify_event = gimp_spin_scale_motion_notify; - widget_class->leave_notify_event = gimp_spin_scale_leave_notify; - widget_class->key_press_event = gimp_spin_scale_keypress; - - spin_button_class->value_changed = gimp_spin_scale_value_changed; - - g_object_class_install_property (object_class, PROP_LABEL, - g_param_spec_string ("label", NULL, NULL, - NULL, - G_PARAM_READWRITE)); - - g_type_class_add_private (klass, sizeof (GimpSpinScalePrivate)); -} - -static void -gimp_spin_scale_init (GimpSpinScale *scale) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (scale); - - gtk_widget_add_events (GTK_WIDGET (scale), - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_BUTTON1_MOTION_MASK | - GDK_LEAVE_NOTIFY_MASK); - - gtk_entry_set_alignment (GTK_ENTRY (scale), 1.0); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (scale), TRUE); - - private->gamma = 1.0; - private->focusWidget = NULL; - private->transferFocus = FALSE; - private->appearanceMode = APPEARANCE_COMPACT; -} - -static void -gimp_spin_scale_dispose (GObject *object) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (object); - - if (private->layout) - { - g_object_unref (private->layout); - private->layout = NULL; - } - - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -static void -gimp_spin_scale_finalize (GObject *object) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (object); - - if (private->label) - { - g_free (private->label); - private->label = NULL; - } - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -gimp_spin_scale_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (object); - GimpSpinScale *scale = GIMP_SPIN_SCALE (object); - - switch (property_id) - { - case PROP_LABEL: - gimp_spin_scale_set_label (scale, g_value_get_string (value)); - break; - - case PROP_FOCUS_WIDGET: - { - /* TODO unhook prior */ - private->focusWidget = GTK_WIDGET (g_value_get_pointer (value)); - } - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -gimp_spin_scale_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (object); - GimpSpinScale *scale = GIMP_SPIN_SCALE (object); - - switch (property_id) - { - case PROP_LABEL: - g_value_set_string (value, gimp_spin_scale_get_label (scale)); - break; - - case PROP_FOCUS_WIDGET: - g_value_set_pointer (value, private->focusWidget); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -void -gimp_spin_scale_set_focuswidget( GtkWidget *scale, GtkWidget* widget ) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (scale); - - /* TODO unhook prior */ - - private->focusWidget = widget; -} - -void -gimp_spin_scale_set_appearance( GtkWidget *widget, const gchar *appearance) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - - if ( strcmp("full", appearance) == 0 ) { - private->appearanceMode = APPEARANCE_FULL; - } else if ( strcmp("compact", appearance) == 0 ) { - private->appearanceMode = APPEARANCE_COMPACT; - } -} - -static void -gimp_spin_scale_get_preferred_width (GtkWidget *widget, - gint *minimum_width, - gint *natural_width) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - PangoContext *context = gtk_widget_get_pango_context (widget); - PangoFontMetrics *metrics; - - GTK_WIDGET_CLASS (parent_class)->get_preferred_width (widget, - minimum_width, - natural_width); - - metrics = pango_context_get_metrics (context, - pango_context_get_font_description (context), - pango_context_get_language (context)); - - if (private->label) - { - gint char_width; - gint digit_width; - gint char_pixels; - - char_width = pango_font_metrics_get_approximate_char_width (metrics); - digit_width = pango_font_metrics_get_approximate_digit_width (metrics); - char_pixels = PANGO_PIXELS (MAX (char_width, digit_width)); - - /* ~3 chars for the ellipse */ - *minimum_width += char_pixels * 3; - *natural_width += char_pixels * 3; - } - - pango_font_metrics_unref (metrics); -} - -static void -gimp_spin_scale_get_preferred_height (GtkWidget *widget, - gint *minimum_height, - gint *natural_height) -{ - PangoContext *context = gtk_widget_get_pango_context (widget); - PangoFontMetrics *metrics; - //gint height; - - GTK_WIDGET_CLASS (parent_class)->get_preferred_height (widget, - minimum_height, - natural_height); - - metrics = pango_context_get_metrics (context, - pango_context_get_font_description (context), - pango_context_get_language (context)); - - //height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) + - // pango_font_metrics_get_descent (metrics)); - - *minimum_height += 1; - *natural_height += 1; - - pango_font_metrics_unref (metrics); -} - -static void -gimp_spin_scale_style_set (GtkWidget *widget, - GtkStyle *prev_style) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - - GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style); - - if (private->layout) - { - g_object_unref (private->layout); - private->layout = NULL; - } -} - - -static gboolean - gimp_spin_scale_draw (GtkWidget *widget, - cairo_t *cr) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - GtkStyleContext *style = gtk_widget_get_style_context(widget); - GtkAllocation allocation; - GdkRGBA color; - - cairo_save (cr); - GTK_WIDGET_CLASS (parent_class)->draw (widget, cr); - cairo_restore (cr); - - gtk_widget_get_allocation (widget, &allocation); - - cairo_set_line_width (cr, 1.0); - - if (private->label) - { - GdkRectangle text_area; - gint minimum_width; - gint natural_width; - PangoRectangle logical; - gint layout_offset_x; - gint layout_offset_y; - GtkStateFlags state; - GdkRGBA text_color; - GdkRGBA bar_text_color; - gdouble progress_fraction; - gint progress_x; - gint progress_y; - gint progress_width; - gint progress_height; - - gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); - - GTK_WIDGET_CLASS (parent_class)->get_preferred_width (widget, - &minimum_width, - &natural_width); - - if (! private->layout) - { - private->layout = gtk_widget_create_pango_layout (widget, - private->label); - pango_layout_set_ellipsize (private->layout, PANGO_ELLIPSIZE_END); - } - - pango_layout_set_width (private->layout, - PANGO_SCALE * - (allocation.width - minimum_width)); - pango_layout_get_pixel_extents (private->layout, NULL, &logical); - - gtk_entry_get_layout_offsets (GTK_ENTRY (widget), NULL, &layout_offset_y); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - layout_offset_x = text_area.x + text_area.width - logical.width - 4; - else - layout_offset_x = 4; - - layout_offset_x -= logical.x; - - state = gtk_widget_get_state_flags (widget); - - gtk_style_context_get_color (style, state, &text_color); - - gtk_style_context_save (style); - gtk_style_context_add_class (style, GTK_STYLE_CLASS_PROGRESSBAR); - gtk_style_context_get_color (style, state, &bar_text_color); - gtk_style_context_restore (style); - - progress_fraction = gtk_entry_get_progress_fraction (GTK_ENTRY (widget)); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - { - progress_fraction = 1.0 - progress_fraction; - - progress_x = text_area.width * progress_fraction; - progress_y = 0; - progress_width = text_area.width - progress_x; - progress_height = text_area.height; - } - else - { - progress_x = 0; - progress_y = 0; - progress_width = text_area.width * progress_fraction; - progress_height = text_area.height; - } - - cairo_save (cr); - - cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD); - cairo_rectangle (cr, 0, 0, text_area.width, text_area.height); - cairo_rectangle (cr, progress_x, progress_y, - progress_width, progress_height); - cairo_clip (cr); - cairo_set_fill_rule (cr, CAIRO_FILL_RULE_WINDING); - - cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3); - gdk_cairo_set_source_rgba (cr, &text_color); - pango_cairo_show_layout (cr, private->layout); - cairo_restore (cr); - - cairo_rectangle (cr, progress_x, progress_y, - progress_width, progress_height); - cairo_clip (cr); - - cairo_move_to (cr, layout_offset_x, text_area.y + layout_offset_y-3); - gdk_cairo_set_source_rgba (cr, &bar_text_color); - pango_cairo_show_layout (cr, private->layout); - } - - return FALSE; -} - -/* Returns TRUE if a translation should be done */ -static gboolean -gtk_widget_get_translation_to_window (GtkWidget *widget, - GdkWindow *window, - int *x, - int *y) -{ - GdkWindow *w, *widget_window; - - if (!gtk_widget_get_has_window (widget)) - { - GtkAllocation allocation; - - gtk_widget_get_allocation (widget, &allocation); - - *x = -allocation.x; - *y = -allocation.y; - } - else - { - *x = 0; - *y = 0; - } - - widget_window = gtk_widget_get_window (widget); - - for (w = window; w && w != widget_window; w = gdk_window_get_parent (w)) - { - int wx, wy; - gdk_window_get_position (w, &wx, &wy); - *x += wx; - *y += wy; - } - - if (w == NULL) - { - *x = 0; - *y = 0; - return FALSE; - } - - return TRUE; -} - -static void -gimp_spin_scale_event_to_widget_coords (GtkWidget *widget, - GdkWindow *window, - gdouble event_x, - gdouble event_y, - gint *widget_x, - gint *widget_y) -{ - gint tx, ty; - - if (gtk_widget_get_translation_to_window (widget, window, &tx, &ty)) - { - event_x += tx; - event_y += ty; - } - - *widget_x = event_x; - *widget_y = event_y; -} - -static SpinScaleTarget -gimp_spin_scale_get_target (GtkWidget *widget, - gdouble x, - gdouble y) -{ - GtkAllocation allocation; - PangoRectangle logical; - gint layout_x; - gint layout_y; - - gtk_widget_get_allocation (widget, &allocation); - gtk_entry_get_layout_offsets (GTK_ENTRY (widget), &layout_x, &layout_y); - pango_layout_get_pixel_extents (gtk_entry_get_layout (GTK_ENTRY (widget)), - NULL, &logical); - - GdkRectangle text_area; - gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); - - if (x >= text_area.x && x < text_area.width && - y >= text_area.y && y < text_area.height) - { - x -= text_area.x; - y -= text_area.y; - - if (x > layout_x && x < layout_x + logical.width && - y > layout_y && y < layout_y + logical.height) - { - return TARGET_NUMBER; - } - else if (y > text_area.height / 2) - { - return TARGET_LOWER; - } - - return TARGET_UPPER; - } - - return TARGET_NONE; -} - -static void -gimp_spin_scale_get_limits (GimpSpinScale *scale, - gdouble *lower, - gdouble *upper) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (scale); - - if (private->scale_limits_set) - { - *lower = private->scale_lower; - *upper = private->scale_upper; - } - else - { - GtkSpinButton *spin_button = GTK_SPIN_BUTTON (scale); - GtkAdjustment *adjustment = gtk_spin_button_get_adjustment (spin_button); - - *lower = gtk_adjustment_get_lower (adjustment); - *upper = gtk_adjustment_get_upper (adjustment); - } -} - -static void -gimp_spin_scale_change_value (GtkWidget *widget, - gdouble x) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget); - GtkAdjustment *adjustment = gtk_spin_button_get_adjustment (spin_button); - gdouble lower; - gdouble upper; - gdouble value; - GdkRectangle text_area; - gtk_entry_get_text_area (GTK_ENTRY (widget), &text_area); - gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (widget), &lower, &upper); - - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - x = text_area.width - x; - - if (private->relative_change) - { - gdouble diff; - gdouble step; - - step = (upper - lower) / text_area.width / 10.0; - if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) - diff = x - (text_area.width - private->start_x); - else - diff = x - private->start_x; - - value = (private->start_value + diff * step); - } - else - { - gdouble fraction; - - fraction = x / (gdouble) text_area.width; - if (fraction > 0.0) - fraction = pow (fraction, private->gamma); - - value = fraction * (upper - lower) + lower; - } - - gtk_adjustment_set_value (adjustment, value); -} - -static gboolean -gimp_spin_scale_button_press (GtkWidget *widget, - GdkEventButton *event) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - - private->changing_value = FALSE; - private->relative_change = FALSE; - - gint x, y; - gimp_spin_scale_event_to_widget_coords (widget, event->window, - event->x, event->y, - &x, &y); - switch (gimp_spin_scale_get_target (widget, x, y)) - { - case TARGET_UPPER: - private->changing_value = TRUE; - - gtk_widget_grab_focus (widget); - - gimp_spin_scale_change_value (widget, x); - - return TRUE; - - case TARGET_LOWER: - private->changing_value = TRUE; - - gtk_widget_grab_focus (widget); - - private->relative_change = TRUE; - private->start_x = x; - private->start_value = gtk_adjustment_get_value (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget))); - - return TRUE; - - default: - break; - } - - return GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, event); -} - -static gboolean -gimp_spin_scale_button_release (GtkWidget *widget, - GdkEventButton *event) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - gint x, y; - - gimp_spin_scale_event_to_widget_coords (widget, event->window, - event->x, event->y, - &x, &y); - - if (private->changing_value) - { - private->changing_value = FALSE; - gimp_spin_scale_change_value (widget, x); - return TRUE; - } - - return GTK_WIDGET_CLASS (parent_class)->button_release_event (widget, event); -} - -static gboolean -gimp_spin_scale_motion_notify (GtkWidget *widget, - GdkEventMotion *event) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - - gdk_event_request_motions (event); - - gint x, y; - - gimp_spin_scale_event_to_widget_coords (widget, event->window, - event->x, event->y, - &x, &y); - - if (private->changing_value) - { - gimp_spin_scale_change_value (widget, x); - - return TRUE; - } - - GTK_WIDGET_CLASS (parent_class)->motion_notify_event (widget, event); - - if (! (event->state & - (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) - ) - { - GdkDisplay *display = gtk_widget_get_display (widget); - GdkCursor *cursor = NULL; - - switch (gimp_spin_scale_get_target (widget, x, y)) - { - case TARGET_NUMBER: - cursor = gdk_cursor_new_for_display (display, GDK_XTERM); - break; - - case TARGET_UPPER: - cursor = gdk_cursor_new_for_display (display, GDK_SB_UP_ARROW); - break; - - case TARGET_LOWER: - cursor = gdk_cursor_new_for_display (display, GDK_SB_H_DOUBLE_ARROW); - break; - - default: - break; - } - - if (cursor) - { - gdk_window_set_cursor (event->window, cursor); - g_object_unref (cursor); - } - } - - return FALSE; -} - -static gboolean -gimp_spin_scale_leave_notify (GtkWidget *widget, - GdkEventCrossing *event) -{ - gdk_window_set_cursor (event->window, NULL); - - return GTK_WIDGET_CLASS (parent_class)->leave_notify_event (widget, event); -} - -gboolean gimp_spin_scale_keypress( GtkWidget *widget, GdkEventKey *event) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (widget); - guint key = 0; - gdk_keymap_translate_keyboard_state( gdk_keymap_get_for_display( gdk_display_get_default() ), - event->hardware_keycode, (GdkModifierType)event->state, - 0, &key, 0, 0, 0 ); - - switch ( key ) { - - case GDK_KEY_Escape: - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - { - private->transferFocus = TRUE; - gimp_spin_scale_defocus( GTK_SPIN_BUTTON(widget) ); - } - break; - - } - - return GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, event); -} - -static void -gimp_spin_scale_defocus( GtkSpinButton *spin_button ) -{ - GimpSpinScalePrivate *private = GET_PRIVATE (spin_button); - - if ( private->transferFocus ) { - if ( private->focusWidget ) { - gtk_widget_grab_focus( private->focusWidget ); - } - } -} - -static void -gimp_spin_scale_value_changed (GtkSpinButton *spin_button) -{ - GtkAdjustment *adjustment = gtk_spin_button_get_adjustment (spin_button); - GimpSpinScalePrivate *private = GET_PRIVATE (spin_button); - gdouble lower; - gdouble upper; - gdouble value; - - gimp_spin_scale_get_limits (GIMP_SPIN_SCALE (spin_button), &lower, &upper); - - value = CLAMP (gtk_adjustment_get_value (adjustment), lower, upper); - - gtk_entry_set_progress_fraction (GTK_ENTRY (spin_button), - pow ((value - lower) / (upper - lower), - 1.0 / private->gamma)); - - // TODO - Allow scrollwheel to change value then return focus, - // but clicks/keypress should keep focus in the control - //if ( gtk_widget_has_focus( GTK_WIDGET(spin_button) ) ) { - // gimp_spin_scale_defocus( spin_button ); - //} -} - - -/* public functions */ - -GtkWidget * -gimp_spin_scale_new (GtkAdjustment *adjustment, - const gchar *label, - gint digits) -{ - g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), NULL); - - return g_object_new (GIMP_TYPE_SPIN_SCALE, - "adjustment", adjustment, - "label", label, - "digits", digits, - NULL); -} - -void -gimp_spin_scale_set_label (GimpSpinScale *scale, - const gchar *label) -{ - GimpSpinScalePrivate *private; - - g_return_if_fail (GIMP_IS_SPIN_SCALE (scale)); - - private = GET_PRIVATE (scale); - - if (label == private->label) - return; - - g_free (private->label); - private->label = g_strdup (label); - - if (private->layout) - { - g_object_unref (private->layout); - private->layout = NULL; - } - - gtk_widget_queue_resize (GTK_WIDGET (scale)); - - g_object_notify (G_OBJECT (scale), "label"); -} - -const gchar * -gimp_spin_scale_get_label (GimpSpinScale *scale) -{ - g_return_val_if_fail (GIMP_IS_SPIN_SCALE (scale), NULL); - - return GET_PRIVATE (scale)->label; -} - -void -gimp_spin_scale_set_scale_limits (GimpSpinScale *scale, - gdouble lower, - gdouble upper) -{ - GimpSpinScalePrivate *private; - GtkSpinButton *spin_button; - GtkAdjustment *adjustment; - - g_return_if_fail (GIMP_IS_SPIN_SCALE (scale)); - - private = GET_PRIVATE (scale); - spin_button = GTK_SPIN_BUTTON (scale); - adjustment = gtk_spin_button_get_adjustment (spin_button); - - g_return_if_fail (lower >= gtk_adjustment_get_lower (adjustment)); - g_return_if_fail (upper <= gtk_adjustment_get_upper (adjustment)); - - private->scale_limits_set = TRUE; - private->scale_lower = lower; - private->scale_upper = upper; - private->gamma = 1.0; - - gimp_spin_scale_value_changed (spin_button); -} - -void -gimp_spin_scale_unset_scale_limits (GimpSpinScale *scale) -{ - GimpSpinScalePrivate *private; - - g_return_if_fail (GIMP_IS_SPIN_SCALE (scale)); - - private = GET_PRIVATE (scale); - - private->scale_limits_set = FALSE; - private->scale_lower = 0.0; - private->scale_upper = 0.0; - - gimp_spin_scale_value_changed (GTK_SPIN_BUTTON (scale)); -} - -gboolean -gimp_spin_scale_get_scale_limits (GimpSpinScale *scale, - gdouble *lower, - gdouble *upper) -{ - GimpSpinScalePrivate *private; - - g_return_val_if_fail (GIMP_IS_SPIN_SCALE (scale), FALSE); - - private = GET_PRIVATE (scale); - - if (lower) - *lower = private->scale_lower; - - if (upper) - *upper = private->scale_upper; - - return private->scale_limits_set; -} - -void -gimp_spin_scale_set_gamma (GimpSpinScale *scale, - gdouble gamma) -{ - GimpSpinScalePrivate *private; - - g_return_if_fail (GIMP_IS_SPIN_SCALE (scale)); - - private = GET_PRIVATE (scale); - - private->gamma = gamma; - - gimp_spin_scale_value_changed (GTK_SPIN_BUTTON (scale)); -} - -gdouble -gimp_spin_scale_get_gamma (GimpSpinScale *scale) -{ - g_return_val_if_fail (GIMP_IS_SPIN_SCALE (scale), 1.0); - - return GET_PRIVATE(scale)->gamma; -} diff --git a/src/widgets/gimp/gimpspinscale.h b/src/widgets/gimp/gimpspinscale.h deleted file mode 100644 index b42a0faf8..000000000 --- a/src/widgets/gimp/gimpspinscale.h +++ /dev/null @@ -1,82 +0,0 @@ -/* GIMP - The GNU Image Manipulation Program - * Copyright (C) 1995 Spencer Kimball and Peter Mattis - * - * gimpspinscale.h - * Copyright (C) 2010 Michael Natterer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef __GIMP_SPIN_SCALE_H__ -#define __GIMP_SPIN_SCALE_H__ - -#ifndef WITH_GIMP -#include -#endif - -G_BEGIN_DECLS - -#define GIMP_TYPE_SPIN_SCALE (gimp_spin_scale_get_type ()) -#define GIMP_SPIN_SCALE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_SPIN_SCALE, GimpSpinScale)) -#define GIMP_SPIN_SCALE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_SPIN_SCALE, GimpSpinScaleClass)) -#define GIMP_IS_SPIN_SCALE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_SPIN_SCALE)) -#define GIMP_IS_SPIN_SCALE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_SPIN_SCALE)) -#define GIMP_SPIN_SCALE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_SPIN_SCALE, GimpSpinScaleClass)) - - -typedef struct _GimpSpinScale GimpSpinScale; -typedef struct _GimpSpinScaleClass GimpSpinScaleClass; - -struct _GimpSpinScale -{ - GtkSpinButton parent_instance; -}; - -struct _GimpSpinScaleClass -{ - GtkSpinButtonClass parent_class; -}; - - -GType gimp_spin_scale_get_type (void) G_GNUC_CONST; - -GtkWidget * gimp_spin_scale_new (GtkAdjustment *adjustment, - const gchar *label, - gint digits); - -void gimp_spin_scale_set_label (GimpSpinScale *scale, - const gchar *label); -const gchar * gimp_spin_scale_get_label (GimpSpinScale *scale); - -void gimp_spin_scale_set_scale_limits (GimpSpinScale *scale, - gdouble lower, - gdouble upper); -void gimp_spin_scale_unset_scale_limits (GimpSpinScale *scale); -gboolean gimp_spin_scale_get_scale_limits (GimpSpinScale *scale, - gdouble *lower, - gdouble *upper); - -void gimp_spin_scale_set_gamma (GimpSpinScale *scale, - gdouble gamma); -gdouble gimp_spin_scale_get_gamma (GimpSpinScale *scale); - -void gimp_spin_scale_set_focuswidget (GtkWidget *scale, - GtkWidget *widget); - -void gimp_spin_scale_set_appearance (GtkWidget *scale, - const gchar *appearance); - -G_END_DECLS - -#endif /* __GIMP_SPIN_SCALE_H__ */ -- cgit v1.2.3 From 0c94d114fac3eed583750dc4b72714c901baa1cb Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 18 Dec 2017 21:45:56 +0100 Subject: Banish sliders from toolbars. --- src/widgets/toolbox.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/toolbox.h b/src/widgets/toolbox.h index afa382e5b..ab1dcdfbd 100644 --- a/src/widgets/toolbox.h +++ b/src/widgets/toolbox.h @@ -17,7 +17,7 @@ #include "preferences.h" -#define TOOLBAR_SLIDER_HINT "full" +#define TOOLBAR_SLIDER_HINT "compact" typedef struct _EgeAdjustmentAction EgeAdjustmentAction; -- cgit v1.2.3 From 441fc40cb3111c840cdad1ae986af72140d793ec Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 19 Dec 2017 13:35:32 +0100 Subject: Enable SimpleFilterModifier to handle blend and blur filter primitives at the same time. Add opacity to SimpleFilterModifier. Use SimpleFilterModifier in Layers, Objects, and Fill and Stroke dialogs. --- src/ui/dialog/fill-and-stroke.cpp | 4 +- src/ui/dialog/layers.cpp | 5 +- src/ui/dialog/objects.cpp | 106 ++++++++-------------------- src/ui/dialog/objects.h | 18 ++--- src/ui/widget/filter-effect-chooser.cpp | 51 +++++++++---- src/ui/widget/filter-effect-chooser.h | 36 ++++++---- src/ui/widget/object-composite-settings.cpp | 74 ++++++++----------- src/ui/widget/object-composite-settings.h | 8 +-- 8 files changed, 129 insertions(+), 173 deletions(-) diff --git a/src/ui/dialog/fill-and-stroke.cpp b/src/ui/dialog/fill-and-stroke.cpp index b271c951b..513cee752 100644 --- a/src/ui/dialog/fill-and-stroke.cpp +++ b/src/ui/dialog/fill-and-stroke.cpp @@ -42,7 +42,9 @@ FillAndStroke::FillAndStroke() _page_fill(Gtk::manage(new UI::Widget::NotebookPage(1, 1, true, true))), _page_stroke_paint(Gtk::manage(new UI::Widget::NotebookPage(1, 1, true, true))), _page_stroke_style(Gtk::manage(new UI::Widget::NotebookPage(1, 1, true, true))), - _composite_settings(SP_VERB_DIALOG_FILL_STROKE, "fillstroke", UI::Widget::SimpleFilterModifier::BLUR), + _composite_settings(SP_VERB_DIALOG_FILL_STROKE, "fillstroke", + UI::Widget::SimpleFilterModifier::BLUR | + UI::Widget::SimpleFilterModifier::OPACITY ), deskTrack(), targetDesktop(0), fillWdgt(0), diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp index 6223bd627..5bbf4c952 100644 --- a/src/ui/dialog/layers.cpp +++ b/src/ui/dialog/layers.cpp @@ -799,7 +799,10 @@ LayersPanel::LayersPanel() : _model(0), _pending(0), _toggleEvent(0), - _compositeSettings(SP_VERB_DIALOG_LAYERS, "layers", UI::Widget::SimpleFilterModifier::BLEND), + _compositeSettings(SP_VERB_DIALOG_LAYERS, "layers", + UI::Widget::SimpleFilterModifier::BLEND | + UI::Widget::SimpleFilterModifier::OPACITY | + UI::Widget::SimpleFilterModifier::BLUR), desktopChangeConn() { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index b50d68239..07fdb2bd7 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -4,8 +4,10 @@ * Authors: * Theodore Janeczko * Tweaked by Liam P White for use in Inkscape + * Tavmjong Bah * * Copyright (C) Theodore Janeczko 2012 + * Tavmjong Bah 2017 * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -509,27 +511,30 @@ void ObjectsPanel::_objectsSelected( Selection *sel ) { */ void ObjectsPanel::_setCompositingValues(SPItem *item) { - //Block the connections to avoid interference + // Block the connections to avoid interference _opacityConnection.block(); _blendConnection.block(); _blurConnection.block(); - //Set the opacity - _opacity_adjustment->set_value((item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1) * _opacity_adjustment->get_upper()); + // Set the opacity + double opacity = (item->style->opacity.set ? SP_SCALE24_TO_FLOAT(item->style->opacity.value) : 1); + opacity *= 100; // Display in percent. + _filter_modifier.set_opacity_value(opacity); + SPFeBlend *spblend = NULL; SPGaussianBlur *spblur = NULL; - if (item->style->getFilter()) - { + if (item->style->getFilter()) { + for (auto& primitive_obj: item->style->getFilter()->children) { if (!SP_IS_FILTER_PRIMITIVE(&primitive_obj)) { break; } - if(SP_IS_FEBLEND(&primitive_obj) && !spblend) { + if (SP_IS_FEBLEND(&primitive_obj) && !spblend) { //Get the blend mode spblend = SP_FEBLEND(&primitive_obj); } - if(SP_IS_GAUSSIANBLUR(&primitive_obj) && !spblur) { + if (SP_IS_GAUSSIANBLUR(&primitive_obj) && !spblur) { //Get the blur value spblur = SP_GAUSSIANBLUR(&primitive_obj); } @@ -537,15 +542,15 @@ void ObjectsPanel::_setCompositingValues(SPItem *item) } //Set the blend mode - _fe_cb.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); - + _filter_modifier.set_blend_mode(spblend ? spblend->blend_mode : Inkscape::Filters::BLEND_NORMAL); + //Set the blur value Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); if (bbox && spblur) { double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? - _fe_blur.set_blur_value(spblur->stdDeviation.getNumber() * 400 / perimeter); + _filter_modifier.set_blur_value(spblur->stdDeviation.getNumber() * 400 / perimeter); } else { - _fe_blur.set_blur_value(0); + _filter_modifier.set_blur_value(0); } //Unblock connections @@ -1494,7 +1499,7 @@ void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) if (item) { item->style->opacity.set = TRUE; - item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_opacity_adjustment->get_value() / _opacity_adjustment->get_upper()); + item->style->opacity.value = SP_SCALE24_FROM_FLOAT(_filter_modifier.get_opacity_value() / 100); item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT); } } @@ -1505,7 +1510,7 @@ void ObjectsPanel::_opacityChangedIter(const Gtk::TreeIter& iter) void ObjectsPanel::_blendValueChanged() { _blockCompositeUpdate = true; - const Glib::ustring blendmode = _fe_cb.get_blend_mode(); + const Glib::ustring blendmode = _filter_modifier.get_blend_mode(); _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blendChangedIter), blendmode)); DocumentUndo::done(_document, SP_VERB_DIALOG_OBJECTS, _("Set object blend mode")); @@ -1534,11 +1539,12 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl if (!SP_IS_FILTER_PRIMITIVE(&primitive)) { break; } + // We should read in the current radius and use that! if (SP_IS_GAUSSIANBLUR(&primitive)) { Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); if (bbox) { double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? - radius = _fe_blur.get_blur_value() * perimeter / 400; + radius = _filter_modifier.get_blur_value() * perimeter / 400; } } } @@ -1576,7 +1582,7 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl void ObjectsPanel::_blurValueChanged() { _blockCompositeUpdate = true; - _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blurChangedIter), _fe_blur.get_blur_value())); + _tree.get_selection()->selected_foreach_iter(sigc::bind(sigc::mem_fun(*this, &ObjectsPanel::_blurChangedIter), _filter_modifier.get_blur_value())); DocumentUndo::maybeDone(_document, "blur", SP_VERB_DIALOG_OBJECTS, _("Set object blur")); _blockCompositeUpdate = false; } @@ -1649,17 +1655,9 @@ ObjectsPanel::ObjectsPanel() : _clipmaskHeader(C_("Clip and mask", "CM")), _highlightHeader(C_("Highlight", "HL")), _nameHeader(_("Label")), - _composite_vbox(Gtk::ORIENTATION_VERTICAL), - _opacity_vbox(Gtk::ORIENTATION_VERTICAL), - _opacity_label(_("Opacity:")), - _opacity_label_unit(_("%")), - _opacity_adjustment(Gtk::Adjustment::create(100.0, 0.0, 100.0, 1.0, 1.0, 0.0)), - _opacity_hscale(_opacity_adjustment), - _opacity_spin_button(_opacity_adjustment, 0.01, 1), - _fe_cb(UI::Widget::SimpleFilterModifier::BLEND), - _fe_vbox(Gtk::ORIENTATION_VERTICAL), - _fe_blur(UI::Widget::SimpleFilterModifier::BLUR), - _blur_vbox(Gtk::ORIENTATION_VERTICAL), + _filter_modifier( UI::Widget::SimpleFilterModifier::BLEND | + UI::Widget::SimpleFilterModifier::BLUR | + UI::Widget::SimpleFilterModifier::OPACITY ), _colorSelectorDialog("dialogs.colorpickerwindow") { //Create the tree model and store @@ -1794,58 +1792,12 @@ ObjectsPanel::ObjectsPanel() : _page.pack_start( _scroller, Gtk::PACK_EXPAND_WIDGET ); //Set up the compositing items - //Blend mode filter effect - _composite_vbox.pack_start(_fe_vbox, false, false, 2); - - _fe_cb.set_halign(Gtk::ALIGN_FILL); - _fe_cb.set_valign(Gtk::ALIGN_END); - -#if WITH_GTKMM_3_12 - _fe_cb.set_margin_start(4); -#else - _fe_cb.set_margin_left(4); -#endif - - _fe_vbox.pack_start(_fe_cb, false, false, 0); - _blendConnection = _fe_cb.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blendValueChanged)); - - //Blur filter effect - _composite_vbox.pack_start(_blur_vbox, false, false, 2); - - _fe_blur.set_hexpand(); - _fe_blur.set_halign(Gtk::ALIGN_FILL); - _fe_blur.set_valign(Gtk::ALIGN_END); - -#if WITH_GTKMM_3_12 - _fe_blur.set_margin_start(4); -#else - _fe_blur.set_margin_left(4); -#endif - - _blur_vbox.pack_start(_fe_blur, false, false, 0); - _blurConnection = _fe_blur.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blurValueChanged)); - - //Opacity - _composite_vbox.pack_start(_opacity_vbox, false, false, 2); - _opacity_label.set_halign(Gtk::ALIGN_END); - _opacity_label.set_valign(Gtk::ALIGN_CENTER); - _opacity_hbox.pack_start(_opacity_label, false, false, 3); - _opacity_vbox.pack_start(_opacity_hbox, false, false, 0); - _opacity_hbox.pack_start(_opacity_hscale, true, true, 0); - _opacity_hbox.pack_start(_opacity_spin_button, false, false, 0); - _opacity_hbox.pack_start(_opacity_label_unit, false, false, 3); - _opacity_hscale.set_draw_value(false); - _opacityConnection = _opacity_adjustment->signal_value_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); - _opacity_label.set_mnemonic_widget(_opacity_hscale); - - //Keep the labels aligned - GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj())); - gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj())); - gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_blur.get_blur_label()->gobj())); + _blendConnection = _filter_modifier.signal_blend_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blendValueChanged)); + _blurConnection = _filter_modifier.signal_blur_changed().connect(sigc::mem_fun(*this, &ObjectsPanel::_blurValueChanged)); + _opacityConnection = _filter_modifier.signal_opacity_changed().connect( sigc::mem_fun(*this, &ObjectsPanel::_opacityValueChanged)); //Pack the compositing functions and the button row - _page.pack_end(_composite_vbox, Gtk::PACK_SHRINK); + _page.pack_end(_filter_modifier, Gtk::PACK_SHRINK); _page.pack_end(_buttonsRow, Gtk::PACK_SHRINK); //Pack into the panel contents @@ -1914,7 +1866,7 @@ ObjectsPanel::ObjectsPanel() : _buttonsRow.pack_start(_buttonsSecondary, Gtk::PACK_EXPAND_WIDGET); _buttonsRow.pack_end(_buttonsPrimary, Gtk::PACK_EXPAND_WIDGET); - _watching.push_back(&_composite_vbox); + _watching.push_back(&_filter_modifier); //Set up the pop-up menu // ------------------------------------------------------- diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h index 73a0f0643..439e3af2a 100644 --- a/src/ui/dialog/objects.h +++ b/src/ui/dialog/objects.h @@ -3,8 +3,10 @@ * * Authors: * Theodore Janeczko + * Tavmjong Bah * * Copyright (C) Theodore Janeczko 2012 + * Tavmjong Bah 2017 * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -151,20 +153,8 @@ private: Gtk::Label _highlightHeader; Gtk::Label _nameHeader; - /* Composite Settings */ - Gtk::Box _composite_vbox; - Gtk::Box _opacity_vbox; - Gtk::Box _opacity_hbox; - Gtk::Label _opacity_label; - Gtk::Label _opacity_label_unit; - Glib::RefPtr _opacity_adjustment; - Gtk::Scale _opacity_hscale; - Inkscape::UI::Widget::SpinButton _opacity_spin_button; - - Inkscape::UI::Widget::SimpleFilterModifier _fe_cb; - Gtk::Box _fe_vbox; - Inkscape::UI::Widget::SimpleFilterModifier _fe_blur; - Gtk::Box _blur_vbox; + /* Composite Settings (blend, blur, opacity). */ + Inkscape::UI::Widget::SimpleFilterModifier _filter_modifier; Gtk::Dialog _colorSelectorDialog; std::unique_ptr _selectedColor; diff --git a/src/ui/widget/filter-effect-chooser.cpp b/src/ui/widget/filter-effect-chooser.cpp index 30506851c..c19aa037a 100644 --- a/src/ui/widget/filter-effect-chooser.cpp +++ b/src/ui/widget/filter-effect-chooser.cpp @@ -3,8 +3,9 @@ * * Author: * Nicholas Bishop + * Tavmjong Bah * - * Copyright (C) 2007 Authors + * Copyright (C) 2007, 2017 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -18,11 +19,11 @@ namespace UI { namespace Widget { SimpleFilterModifier::SimpleFilterModifier(int flags) - : _lb_blend(_("Blend mode:")), - _lb_blur(_("_Blur:")), - _lb_blur_unit(_("%")), - _blend(BlendModeConverter, SP_ATTR_INVALID, false), - _blur(_("Blur (%)"), 0, 0, 100, 1, 1, 1) + : _flags( flags ) + , _lb_blend(_("Blend mode:")) + , _blend(BlendModeConverter, SP_ATTR_INVALID, false) + , _blur( _("Blur (%)" ), 0, 0, 100, 1, 1, 1) + , _opacity(_("Opacity (%)"), 0, 0, 100, 1, 1, 1) { set_name("SimpleFilterModifier"); @@ -30,25 +31,40 @@ SimpleFilterModifier::SimpleFilterModifier(int flags) if (flags & BLEND) { add(_hb_blend); + _lb_blend.set_use_underline(); + _lb_blend.set_mnemonic_widget(_blend); _hb_blend.pack_start(_lb_blend, false, false, 0); _hb_blend.pack_start(_blend); } + if (flags & BLUR) { add(_blur); } + if (flags & OPACITY) { + add(_opacity); + } + show_all_children(); - _hb_blend.set_spacing(12); - _lb_blend.set_use_underline(); - _lb_blend.set_mnemonic_widget(_blend); - _blend.signal_changed().connect(signal_blend_blur_changed()); - _blur.signal_value_changed().connect(signal_blend_blur_changed()); + _blend.signal_changed().connect(signal_blend_changed()); + _blur.signal_value_changed().connect(signal_blur_changed()); + _opacity.signal_value_changed().connect(signal_opacity_changed()); +} + +sigc::signal& SimpleFilterModifier::signal_blend_changed() +{ + return _signal_blend_changed; +} + +sigc::signal& SimpleFilterModifier::signal_blur_changed() +{ + return _signal_blur_changed; } -sigc::signal& SimpleFilterModifier::signal_blend_blur_changed() +sigc::signal& SimpleFilterModifier::signal_opacity_changed() { - return _signal_blend_blur_changed; + return _signal_opacity_changed; } const Glib::ustring SimpleFilterModifier::get_blend_mode() @@ -75,9 +91,14 @@ void SimpleFilterModifier::set_blur_value(const double val) _blur.set_value(val); } -void SimpleFilterModifier::set_blur_sensitive(const bool s) +double SimpleFilterModifier::get_opacity_value() const +{ + return _opacity.get_value(); +} + +void SimpleFilterModifier::set_opacity_value(const double val) { - _blur.set_sensitive(s); + _opacity.set_value(val); } } diff --git a/src/ui/widget/filter-effect-chooser.h b/src/ui/widget/filter-effect-chooser.h index 0bcf97433..148f44d04 100644 --- a/src/ui/widget/filter-effect-chooser.h +++ b/src/ui/widget/filter-effect-chooser.h @@ -6,8 +6,9 @@ * * Author: * Nicholas Bishop + * Tavmjong Bah * - * Copyright (C) 2007 Authors + * Copyright (C) 2007, 2017 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -23,40 +24,47 @@ namespace Inkscape { namespace UI { namespace Widget { -/* Allows basic control over feBlend and feGaussianBlur effects, - with an option to use the full filter effect controls. */ +/* Allows basic control over feBlend and feGaussianBlur effects as well as opacity. + * Common for Object, Layers, and Fill and Stroke dialogs. +*/ class SimpleFilterModifier : public Gtk::VBox { public: enum Flags { - NONE=0, - BLUR=1, - BLEND=2 + NONE = 0, + BLUR = 1, + OPACITY= 2, + BLEND = 4 }; SimpleFilterModifier(int flags); - sigc::signal& signal_blend_blur_changed(); + sigc::signal& signal_blend_changed(); + sigc::signal& signal_blur_changed(); + sigc::signal& signal_opacity_changed(); const Glib::ustring get_blend_mode(); // Uses blend mode enum values, or -1 for a complex filter void set_blend_mode(const int); double get_blur_value() const; - void set_blur_value(const double); - void set_blur_sensitive(const bool); - Gtk::Label *get_blur_label() { return &_lb_blur; }; + void set_blur_value(const double); + + double get_opacity_value() const; + void set_opacity_value(const double); private: int _flags; - Gtk::HBox _hb_blend; - Gtk::HBox _hb_blur; - Gtk::Label _lb_blend, _lb_blur, _lb_blur_unit; + Gtk::HBox _hb_blend; + Gtk::Label _lb_blend; ComboBoxEnum _blend; SpinScale _blur; + SpinScale _opacity; - sigc::signal _signal_blend_blur_changed; + sigc::signal _signal_blend_changed; + sigc::signal _signal_blur_changed; + sigc::signal _signal_opacity_changed; }; } diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index ae01c049b..161f5ba4f 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -33,42 +33,24 @@ namespace Widget { ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char const *history_prefix, int flags) : _verb_code(verb_code), + _blend_tag(Glib::ustring(history_prefix) + ":blend"), _blur_tag(Glib::ustring(history_prefix) + ":blur"), _opacity_tag(Glib::ustring(history_prefix) + ":opacity"), - _opacity_vbox(false, 0), - _opacity_scale(_("Opacity (%)"), 100.0, 0.0, 100.0, 1.0, 1.0, 1), - _fe_cb(flags), - _fe_vbox(false, 0), + _filter_modifier(flags), _blocked(false) { - set_name( "CompositeSettings"); + set_name( "ObjectCompositeSettings"); // Filter Effects - pack_start(_fe_vbox, false, false, 2); - _fe_vbox.pack_start(_fe_cb, false, false, 0); - _fe_cb.signal_blend_blur_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_blendBlurValueChanged)); + pack_start(_filter_modifier, false, false, 2); - // Opacity - pack_start(_opacity_vbox, false, false, 2); - _opacity_vbox.pack_start(_opacity_scale); - - _opacity_scale.signal_value_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); + _filter_modifier.signal_blend_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_blendBlurValueChanged)); + _filter_modifier.signal_blur_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_blendBlurValueChanged)); + _filter_modifier.signal_opacity_changed().connect(sigc::mem_fun(*this, &ObjectCompositeSettings::_opacityValueChanged)); SPDesktop *desktop = SP_ACTIVE_DESKTOP; - _opacity_scale.set_focuswidget(GTK_WIDGET(desktop->canvas)); - - /* SizeGroup keeps the blur and opacity labels aligned in Fill & Stroke dlg */ -/* - GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj())); - gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj())); -*/ show_all_children(); - - // These signals don't properly detect change in desktop, rely on owner dialog to call setSubject() from setTargetDesktop() - //_desktop_activated = g_signal_connect ( G_OBJECT (INKSCAPE), "activate_desktop", G_CALLBACK (&ObjectCompositeSettings::_on_desktop_activate), this ); - //_desktop_activated = g_signal_connect ( G_OBJECT (INKSCAPE), "deactivate_desktop", G_CALLBACK (&ObjectCompositeSettings::_on_desktop_deactivate), this ); } ObjectCompositeSettings::~ObjectCompositeSettings() { @@ -84,6 +66,12 @@ void ObjectCompositeSettings::setSubject(StyleSubject *subject) { } } +// We get away with sharing one callback for blend and blur as this is used by +// * the Layers dialog where only one layer can be selected at a time, +// * the Fill and Stroke dialog where only blur is used. +// If both blend and blur are used in a dialog where more than one object can +// be selected then this should be split into separate functions for blend and +// blur (like in the Objects dialog). void ObjectCompositeSettings::_blendBlurValueChanged() { @@ -108,12 +96,12 @@ ObjectCompositeSettings::_blendBlurValueChanged() double radius; if (bbox) { double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? - radius = _fe_cb.get_blur_value() * perimeter / 400; + radius = _filter_modifier.get_blur_value() * perimeter / 400; } else { radius = 0; } - const Glib::ustring blendmode = _fe_cb.get_blend_mode(); + const Glib::ustring blendmode = _filter_modifier.get_blend_mode(); //apply created filter to every selected item std::vector sel = _subject->list(); @@ -148,7 +136,7 @@ ObjectCompositeSettings::_blendBlurValueChanged() } DocumentUndo::maybeDone(document, _blur_tag.c_str(), _verb_code, - _("Change blur")); + _("Change blur/blend filter")); // resume interruptibility //sp_canvas_end_forced_full_redraws(desktop->getCanvas()); @@ -172,15 +160,10 @@ ObjectCompositeSettings::_opacityValueChanged() return; _blocked = true; - // FIXME: fix for GTK breakage, see comment in SelectedStyle::on_opacity_changed; here it results in crash 1580903 - // UPDATE: crash fixed in GTK+ 2.10.7 (bug 374378), remove this as soon as it's reasonably common - // (though this only fixes the crash, not the multiple change events) - //sp_canvas_force_full_redraw_after_interruptions(desktop->getCanvas(), 0); - SPCSSAttr *css = sp_repr_css_attr_new (); Inkscape::CSSOStringStream os; - os << CLAMP (_opacity_scale.get_adjustment()->get_value() / 100, 0.0, 1.0); + os << CLAMP (_filter_modifier.get_opacity_value() / 100, 0.0, 1.0); sp_repr_css_set_property (css, "opacity", os.str().c_str()); _subject->setCSS(css); @@ -216,14 +199,11 @@ ObjectCompositeSettings::_subjectChanged() { switch (result) { case QUERY_STYLE_NOTHING: - _opacity_vbox.set_sensitive(false); - // gtk_widget_set_sensitive (opa, FALSE); break; case QUERY_STYLE_SINGLE: case QUERY_STYLE_MULTIPLE_AVERAGED: // TODO: treat this slightly differently case QUERY_STYLE_MULTIPLE_SAME: - _opacity_vbox.set_sensitive(true); - _opacity_scale.get_adjustment()->set_value(100 * SP_SCALE24_TO_FLOAT(query.opacity.value)); + _filter_modifier.set_opacity_value(100 * SP_SCALE24_TO_FLOAT(query.opacity.value)); break; } @@ -231,16 +211,13 @@ ObjectCompositeSettings::_subjectChanged() { const int blend_result = _subject->queryStyle(&query, QUERY_STYLE_PROPERTY_BLEND); switch(blend_result) { case QUERY_STYLE_NOTHING: - _fe_cb.set_sensitive(false); break; case QUERY_STYLE_SINGLE: case QUERY_STYLE_MULTIPLE_SAME: - _fe_cb.set_blend_mode(query.filter_blend_mode.value); - _fe_cb.set_sensitive(true); + _filter_modifier.set_blend_mode(query.filter_blend_mode.value); break; case QUERY_STYLE_MULTIPLE_DIFFERENT: // TODO: set text - _fe_cb.set_sensitive(false); break; } @@ -248,7 +225,7 @@ ObjectCompositeSettings::_subjectChanged() { int blur_result = _subject->queryStyle(&query, QUERY_STYLE_PROPERTY_BLUR); switch (blur_result) { case QUERY_STYLE_NOTHING: //no blurring - _fe_cb.set_blur_sensitive(false); + _filter_modifier.set_blur_value(0); break; case QUERY_STYLE_SINGLE: case QUERY_STYLE_MULTIPLE_AVERAGED: @@ -256,16 +233,23 @@ ObjectCompositeSettings::_subjectChanged() { Geom::OptRect bbox = _subject->getBounds(SPItem::GEOMETRIC_BBOX); if (bbox) { double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? - _fe_cb.set_blur_sensitive(true); //update blur widget value float radius = query.filter_gaussianBlur_deviation.value; float percent = radius * 400 / perimeter; // so that for a square, 100% == half side - _fe_cb.set_blur_value(percent); + _filter_modifier.set_blur_value(percent); } break; } } + // If we have nothing selected, disable dialog. + if (result == QUERY_STYLE_NOTHING && + blend_result == QUERY_STYLE_NOTHING ) { + _filter_modifier.set_sensitive( false ); + } else { + _filter_modifier.set_sensitive( true ); + } + _blocked = false; } diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h index eff1ba800..9e810bc00 100644 --- a/src/ui/widget/object-composite-settings.h +++ b/src/ui/widget/object-composite-settings.h @@ -18,7 +18,6 @@ #include #include "ui/widget/filter-effect-chooser.h" -#include "ui/widget/spinbutton.h" class SPDesktop; struct InkscapeApplication; @@ -42,16 +41,13 @@ public: private: unsigned int _verb_code; + Glib::ustring _blend_tag; Glib::ustring _blur_tag; Glib::ustring _opacity_tag; - Gtk::VBox _opacity_vbox; - SpinScale _opacity_scale; - StyleSubject *_subject; - SimpleFilterModifier _fe_cb; - Gtk::VBox _fe_vbox; + SimpleFilterModifier _filter_modifier; bool _blocked; gulong _desktop_activated; -- cgit v1.2.3 From 0462e9143d161a3c7d6077d9f40dcfd13ca27493 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 19 Dec 2017 20:18:14 +0100 Subject: Replace the Gtk::Range by Gtk::Scale in the InkSpinScale widget. The Gtk::Scale is more likely to produce a satisfactory result independent of theme. --- share/ui/style.css | 20 +++++++++ src/ui/widget/ink-spinscale.cpp | 95 ++++++++++++++++++++++++----------------- src/ui/widget/ink-spinscale.h | 27 +++++++++--- 3 files changed, 97 insertions(+), 45 deletions(-) diff --git a/share/ui/style.css b/share/ui/style.css index ff353ebfe..190aa9f53 100644 --- a/share/ui/style.css +++ b/share/ui/style.css @@ -118,6 +118,7 @@ combobox window.popup scrolledwindow treeview separator { border-style: solid; border-width: 1px; border-radius: 3px; + padding: 0px; } #InkSpinScale spinbutton { @@ -128,6 +129,25 @@ combobox window.popup scrolledwindow treeview separator { padding: 0 0 0 1px; } +/* Hide slider */ +#InkSpinScale slider { + background: none; + border: none; + outline: none; + min-width: 0px; + min-height: 0px; + padding: 0px; + margin: 0px; +} + +#InkSpinScale scale { + padding: 2px; +} + +#InkSpinScale trough { + min-height: 24px; +} + #InkSpinScale box.active { box-shadow: 0 0 0 1px rgb(74,144,217); } diff --git a/src/ui/widget/ink-spinscale.cpp b/src/ui/widget/ink-spinscale.cpp index 4fe69633f..ab7ceffc4 100644 --- a/src/ui/widget/ink-spinscale.cpp +++ b/src/ui/widget/ink-spinscale.cpp @@ -1,3 +1,19 @@ +/* + * Authors: + * Tavmjong Bah + * + * Copyright (C) 2017 Tavmjong Bah + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +/** \file + A widget that allows entering a numerical value either by + clicking/dragging on a custom Gtk::Scale or by using a + Gtk::SpinButton. The custom Gtk::Scale differs from the stock + Gtk::Scale in that it includes a label to save space and has a + "slow dragging" mode triggered by the Alt key. +*/ #include "ink-spinscale.h" #include @@ -10,37 +26,28 @@ #include -// Constructor for Gtk::Range is protected... must derive a new class. -InkRange::InkRange(Glib::RefPtr adjustment, Gtk::SpinButton* spinbutton) - : Glib::ObjectBase("InkRange") - , Gtk::Range() +InkScale::InkScale(Glib::RefPtr adjustment, Gtk::SpinButton* spinbutton) + : Glib::ObjectBase("InkScale") + , Gtk::Scale(adjustment) , _spinbutton(spinbutton) , _dragging(false) , _drag_start(0) , _drag_offset(0) { - set_name("InkRange"); - set_adjustment(adjustment); + set_name("InkScale"); // std::cout << "GType name: " << G_OBJECT_TYPE_NAME(gobj()) << std::endl; } void -InkRange::set_label(Glib::ustring label) { +InkScale::set_label(Glib::ustring label) { _label = label; } bool -InkRange::on_draw(const::Cairo::RefPtr<::Cairo::Context>& cr) { +InkScale::on_draw(const::Cairo::RefPtr<::Cairo::Context>& cr) { - // std::cout << "\nInkRange::on_draw" << std::endl; + Gtk::Range::on_draw(cr); - // Get our own style info... - // auto style = get_style_context(); - // auto state = style->get_state(); - // std::cout << "color: " << style->get_color( state ).to_string() << std::endl; - // std::cout << "background: " << style->get_background_color( state ).to_string() << std::endl; - // std::cout << "border: " << style->get_border_color( state ).to_string() << std::endl; - // Get SpinButton style info... auto style_spin = _spinbutton->get_style_context(); auto state_spin = style_spin->get_state(); @@ -55,38 +62,37 @@ InkRange::on_draw(const::Cairo::RefPtr<::Cairo::Context>& cr) { int x, y; _spinbutton->get_layout_offsets(x, y); + // Fill widget proportional to value. + double fraction = get_fraction(); + + // Get trough rectangle and clipping point for text. + Gdk::Rectangle slider_area = get_range_rect(); + double clip_text_x = slider_area.get_x() + slider_area.get_width() * fraction; + // Render text in normal text color. cr->save(); + cr->rectangle(clip_text_x, 0, get_width(), get_height()); + cr->clip(); Gdk::Cairo::set_source_rgba(cr, text_color); - cr->set_source_rgba(0, 0, 0, 1); + //cr->set_source_rgba(0, 0, 0, 1); cr->move_to(5, y ); layout_label->show_in_cairo_context(cr); cr->restore(); - // Fill widget proportional to value. - double fraction = get_fraction(); - - // Render bar (over normal text to reduce blurriness). - Gdk::RGBA fill_color("rgba(74,144,217,1.0)"); - Gdk::Cairo::set_source_rgba(cr, fill_color); - cr->rectangle(0, 0, get_width() * fraction, get_height()); - cr->fill_preserve(); // Save rectangle for clipping text. - // Render text, clipped, in white over bar (TODO: use same color as SpinButton progress bar). cr->save(); + cr->rectangle(0, 0, clip_text_x, get_height()); cr->clip(); cr->set_source_rgba(1, 1, 1, 1); cr->move_to(5, y); layout_label->show_in_cairo_context(cr); cr->restore(); - return false; + return true; } bool -InkRange::on_button_press_event(GdkEventButton* button_event) { - - _dragging = true; +InkScale::on_button_press_event(GdkEventButton* button_event) { if (! (button_event->state & GDK_MOD1_MASK) ) { set_adjustment_value(button_event->x); @@ -101,14 +107,14 @@ InkRange::on_button_press_event(GdkEventButton* button_event) { } bool -InkRange::on_button_release_event(GdkEventButton* button_event) { +InkScale::on_button_release_event(GdkEventButton* button_event) { _dragging = false; return true; } bool -InkRange::on_motion_notify_event(GdkEventMotion* motion_event) { +InkScale::on_motion_notify_event(GdkEventMotion* motion_event) { double x = motion_event->x; double y = motion_event->y; @@ -144,7 +150,7 @@ InkRange::on_motion_notify_event(GdkEventMotion* motion_event) { } double -InkRange::get_fraction() { +InkScale::get_fraction() { Glib::RefPtr adjustment = get_adjustment(); double upper = adjustment->get_upper(); @@ -156,13 +162,16 @@ InkRange::get_fraction() { } void -InkRange::set_adjustment_value(double x) { +InkScale::set_adjustment_value(double x) { Glib::RefPtr adjustment = get_adjustment(); double upper = adjustment->get_upper(); double lower = adjustment->get_lower(); - double fraction = x / (double)get_width(); + + Gdk::Rectangle slider_area = get_range_rect(); + double fraction = (x - slider_area.get_x()) / (double)slider_area.get_width(); double value = fraction * (upper - lower) + lower; + adjustment->set_value( value ); } @@ -186,9 +195,12 @@ InkSpinScale::InkSpinScale(double value, double lower, _spinbutton = Gtk::manage(new Gtk::SpinButton(_adjustment)); _spinbutton->set_numeric(); _spinbutton->signal_key_release_event().connect(sigc::mem_fun(*this,&InkSpinScale::on_key_release_event),false); - _range = Gtk::manage(new InkRange(_adjustment, _spinbutton)); + + _scale = Gtk::manage(new InkScale(_adjustment, _spinbutton)); + _scale->set_draw_value(false); + pack_end( *_spinbutton, Gtk::PACK_SHRINK ); - pack_end( *_range, Gtk::PACK_EXPAND_WIDGET ); + pack_end( *_scale, Gtk::PACK_EXPAND_WIDGET ); } InkSpinScale::InkSpinScale(Glib::RefPtr adjustment) @@ -200,14 +212,17 @@ InkSpinScale::InkSpinScale(Glib::RefPtr adjustment) _spinbutton = Gtk::manage(new Gtk::SpinButton(_adjustment)); _spinbutton->set_numeric(); - _range = Gtk::manage(new InkRange(_adjustment, _spinbutton)); + + _scale = Gtk::manage(new InkScale(_adjustment, _spinbutton)); + _scale->set_draw_value(false); + pack_end( *_spinbutton, Gtk::PACK_SHRINK ); - pack_end( *_range, Gtk::PACK_EXPAND_WIDGET ); + pack_end( *_scale, Gtk::PACK_EXPAND_WIDGET ); } void InkSpinScale::set_label(Glib::ustring label) { - _range->set_label(label); + _scale->set_label(label); } void diff --git a/src/ui/widget/ink-spinscale.h b/src/ui/widget/ink-spinscale.h index 9b67d3891..ff8ad352e 100644 --- a/src/ui/widget/ink-spinscale.h +++ b/src/ui/widget/ink-spinscale.h @@ -1,20 +1,37 @@ #ifndef INK_SPINSCALE_H #define INK_SPINSCALE_H +/* + * Authors: + * Tavmjong Bah + * + * Copyright (C) 2017 Tavmjong Bah + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +/** + A widget that allows entering a numerical value either by + clicking/dragging on a custom Gtk::Scale or by using a + Gtk::SpinButton. The custom Gtk::Scale differs from the stock + Gtk::Scale in that it includes a label to save space and has a + "slow-dragging" mode triggered by the Alt key. +*/ + #include #include -#include +#include namespace Gtk { class SpinButton; } -class InkRange : public Gtk::Range +class InkScale : public Gtk::Scale { public: - InkRange(Glib::RefPtr, Gtk::SpinButton* spinbutton); - ~InkRange() {}; + InkScale(Glib::RefPtr, Gtk::SpinButton* spinbutton); + ~InkScale() {}; void set_label(Glib::ustring label); @@ -64,7 +81,7 @@ class InkSpinScale : public Gtk::Box protected: - InkRange* _range; + InkScale* _scale; Gtk::SpinButton* _spinbutton; Glib::RefPtr _adjustment; GtkWidget* _focus_widget; -- cgit v1.2.3 From 7fe5369149c8e894bd4cd71ad535eaff02556f02 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Wed, 20 Dec 2017 22:48:36 +0100 Subject: Effects: make "Working..." dialog transient for preferences dialog --- src/extension/effect.cpp | 6 ++++++ src/extension/effect.h | 1 + src/extension/execution-env.cpp | 13 +++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/extension/effect.cpp b/src/extension/effect.cpp index ef254f623..38e437ac9 100644 --- a/src/extension/effect.cpp +++ b/src/extension/effect.cpp @@ -352,6 +352,12 @@ Effect::get_info_widget(void) return Extension::get_info_widget(); } +PrefDialog * +Effect::get_pref_dialog (void) +{ + return _prefDialog; +} + void Effect::set_pref_dialog (PrefDialog * prefdialog) { diff --git a/src/extension/effect.h b/src/extension/effect.h index a14cc6e7d..143243a2e 100644 --- a/src/extension/effect.h +++ b/src/extension/effect.h @@ -125,6 +125,7 @@ public: bool no_doc; // if true, the effect does not process SVG document at all, so no need to save, read, and watch for errors bool no_live_preview; // if true, the effect does not need "live preview" checkbox in its dialog + PrefDialog *get_pref_dialog (void); void set_pref_dialog (PrefDialog * prefdialog); private: static gchar * remove_ (gchar * instr); diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index f75b06937..588543a76 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -12,7 +12,8 @@ #include #endif -#include "gtkmm/messagedialog.h" +#include +#include #include "execution-env.h" #include "prefdialog.h" @@ -141,7 +142,15 @@ ExecutionEnv::createWorkingDialog (void) { g_free(dlgmessage); if (!_effect->is_silent()){ - _visibleDialog->show(); + Gtk::Dialog *dlg = _effect->get_pref_dialog(); + if (dlg) { + _visibleDialog->set_transient_for(*dlg); + } else { + // ToDo: Do we need to make the window transient for the main window here? + // Currently imossible to test because of GUI freezing during save, + // see https://bugs.launchpad.net/inkscape/+bug/967416 + } + _visibleDialog->show_now(); } return; -- cgit v1.2.3 From cabdde6554a95e6d0fee5ab39f850f7645df3cbb Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Thu, 21 Dec 2017 00:11:30 +0100 Subject: Make script warnings transient for "Working..." dialog This turned out to be a bit of a mess due to the interplay between the classes Script / ExecutionEnv / Effect / PrefDialog. (Basically they don't talk to each other much but all want to contribute to the GUI) Likely "Script" (and possibly "ExecutionEnv") should be refactored to let the other classes handle UI exclusively and throw errors where suitable. --- src/extension/effect.cpp | 1 + src/extension/execution-env.h | 3 +++ src/extension/extension.cpp | 1 + src/extension/extension.h | 4 ++++ src/extension/implementation/script.cpp | 18 +++++++++++++----- src/extension/implementation/script.h | 9 +++++++++ src/extension/prefdialog.cpp | 4 ++++ 7 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/extension/effect.cpp b/src/extension/effect.cpp index 38e437ac9..93b940732 100644 --- a/src/extension/effect.cpp +++ b/src/extension/effect.cpp @@ -274,6 +274,7 @@ Effect::effect (Inkscape::UI::View::View * doc) ExecutionEnv executionEnv(this, doc); + execution_env = &executionEnv; timer->lock(); executionEnv.run(); if (executionEnv.wait()) { diff --git a/src/extension/execution-env.h b/src/extension/execution-env.h index a57c7b8c9..199e3a5e2 100644 --- a/src/extension/execution-env.h +++ b/src/extension/execution-env.h @@ -98,6 +98,9 @@ public: /** \brief Wait for the effect to complete if it hasn't. */ bool wait (void); + /** \brief Return reference to working dialog (if any) */ + Gtk::Dialog *get_working_dialog (void) { return _visibleDialog; }; + private: void runComplete (void); void createPrefsDialog (Gtk::Widget * controls); diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp index 240d28a59..49ae0075c 100644 --- a/src/extension/extension.cpp +++ b/src/extension/extension.cpp @@ -57,6 +57,7 @@ Extension::Extension (Inkscape::XML::Node * in_repr, Implementation::Implementat : _help(NULL) , silent(false) , _gui(true) + , execution_env(NULL) { repr = in_repr; Inkscape::GC::anchor(in_repr); diff --git a/src/extension/extension.h b/src/extension/extension.h index 9ccc9869b..a00eca21f 100644 --- a/src/extension/extension.h +++ b/src/extension/extension.h @@ -71,6 +71,7 @@ class SPDocument; namespace Inkscape { namespace Extension { +class ExecutionEnv; class Dependency; class ExpirationTimer; class ExpirationTimer; @@ -109,6 +110,7 @@ private: protected: Inkscape::XML::Node *repr; /**< The XML description of the Extension */ Implementation::Implementation * imp; /**< An object that holds all the functions for making this work */ + ExecutionEnv * execution_env; /**< Execution environment of the extension (currently only used by Effects) */ ExpirationTimer * timer; /**< Timeout to unload after a given time */ public: @@ -130,6 +132,8 @@ public: bool deactivated (void); void printFailure (Glib::ustring reason); Implementation::Implementation * get_imp (void) { return imp; }; + void set_execution_env (ExecutionEnv * env) { execution_env = env; }; + ExecutionEnv *get_execution_env (void) { return execution_env; }; /* Parameter Stuff */ private: diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 0f0a79bfb..260204cb0 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -28,6 +28,7 @@ #include "desktop.h" #include "ui/dialog-events.h" #include "extension/effect.h" +#include "extension/execution-env.h" #include "extension/output.h" #include "extension/input.h" #include "extension/db.h" @@ -145,9 +146,10 @@ std::string Script::resolveInterpreterExecutable(const Glib::ustring &interpName officially in the load function. This allows for less allocation of memory in the unloaded state. */ -Script::Script() : - Implementation(), - _canceled(false) +Script::Script() + : Implementation() + , _canceled(false) + , parent_window(NULL) { } @@ -652,6 +654,8 @@ void Script::effect(Inkscape::Extension::Effect *module, std::list params; module->paramListString(params); + parent_window = module->get_execution_env()->get_working_dialog(); + if (module->no_doc) { // this is a no-doc extension, e.g. a Help menu command; // just run the command without any files, ignoring errors @@ -741,7 +745,7 @@ void Script::effect(Inkscape::Extension::Effect *module, Gtk::MessageDialog warning( _("The output from the extension could not be parsed."), false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, true); - warning.set_transient_for( *(INKSCAPE.active_desktop()->getToplevel()) ); + warning.set_transient_for( parent_window ? *parent_window : *(INKSCAPE.active_desktop()->getToplevel()) ); warning.run(); } } // data_read @@ -932,7 +936,11 @@ void Script::checkStderr (const Glib::ustring &data, Gtk::MessageDialog warning(message, false, type, Gtk::BUTTONS_OK, true); warning.set_resizable(true); GtkWidget *dlg = GTK_WIDGET(warning.gobj()); - sp_transientize(dlg); + if (parent_window) { + warning.set_transient_for(*parent_window); + } else { + sp_transientize(dlg); + } auto vbox = warning.get_content_area(); diff --git a/src/extension/implementation/script.h b/src/extension/implementation/script.h index 684719895..c6ae117c7 100644 --- a/src/extension/implementation/script.h +++ b/src/extension/implementation/script.h @@ -15,6 +15,7 @@ #include "implementation.h" #include +#include #include #include #include @@ -66,6 +67,14 @@ private: */ Glib::ustring helper_extension; + /** + * The window which should be considered as "parent window" of the script execution, + * e.g. when showin warning messages + * + * If set to NULL the main window of the currently active document is used. + */ + Gtk::Window *parent_window; + std::string solve_reldir(Inkscape::XML::Node *repr_in); bool check_existence (std::string const& command); void copy_doc(Inkscape::XML::Node * olddoc, Inkscape::XML::Node * newdoc); diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp index 92ddd3050..0247e18e9 100644 --- a/src/extension/prefdialog.cpp +++ b/src/extension/prefdialog.cpp @@ -131,6 +131,7 @@ PrefDialog::~PrefDialog ( ) _exEnv->cancel(); delete _exEnv; _exEnv = NULL; + _effect->set_execution_env(_exEnv); } if (_effect != NULL) { @@ -173,6 +174,7 @@ PrefDialog::preview_toggle (void) { set_modal(true); if (_exEnv == NULL) { _exEnv = new ExecutionEnv(_effect, SP_ACTIVE_DESKTOP, NULL, false, false); + _effect->set_execution_env(_exEnv); _exEnv->run(); } } else { @@ -182,6 +184,7 @@ PrefDialog::preview_toggle (void) { _exEnv->undo(); delete _exEnv; _exEnv = NULL; + _effect->set_execution_env(_exEnv); } } } @@ -230,6 +233,7 @@ PrefDialog::on_response (int signal) { } delete _exEnv; _exEnv = NULL; + _effect->set_execution_env(_exEnv); } } -- cgit v1.2.3 From 9eed36c7aefd7cbd905168bb341062d093dc6584 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Thu, 21 Dec 2017 00:11:58 +0100 Subject: Minor cleanup (remove some unimplemented methods) --- src/extension/execution-env.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/extension/execution-env.h b/src/extension/execution-env.h index 199e3a5e2..b1a3a8ea2 100644 --- a/src/extension/execution-env.h +++ b/src/extension/execution-env.h @@ -103,13 +103,8 @@ public: private: void runComplete (void); - void createPrefsDialog (Gtk::Widget * controls); void createWorkingDialog (void); void workingCanceled (const int resp); - void processingCancel (void); - void processingComplete(void); - void documentCancel (void); - void documentCommit (void); void reselect (void); void genDocCache (void); void killDocCache (void); -- cgit v1.2.3 From b1383564035b89438cbed89855e1109174f6537b Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Fri, 22 Dec 2017 17:03:56 +0100 Subject: Packaging/NSIS: Add Korean installer translation Fixed bug: - https://bugs.launchpad.net/inkscape/+bug/1739035 --- packaging/win32/languages/Korean.nsh | 55 +++++++++++++ packaging/win32/languages/Korean_languageNames.nsh | 94 ++++++++++++++++++++++ packaging/win32/languages/_language_lists.nsh | 1 + 3 files changed, 150 insertions(+) create mode 100644 packaging/win32/languages/Korean.nsh create mode 100644 packaging/win32/languages/Korean_languageNames.nsh diff --git a/packaging/win32/languages/Korean.nsh b/packaging/win32/languages/Korean.nsh new file mode 100644 index 000000000..72eff6d31 --- /dev/null +++ b/packaging/win32/languages/Korean.nsh @@ -0,0 +1,55 @@ +;Language: Korean (1042) +;By Sensu Iun +${LangFileString} CaptionDescription "오픈 소스 SVG(스케일러블 벡터 그래픽) 편집기" +${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name)은 GNU 일반 공중 라이선스(GPL)로 릴리스됩니다. 여기에 표시된 라이선스는 참고용으로만 제공될 뿐입니다. $_CLICK" +${LangFileString} DIFFERENT_USER "잉크스케이프가 사용자 $0 에 의해 설치되었습니다.$\r$\n이대로 계속하면 정상적으로 완료되지 않을 수도 있습니다!$\r$\n $0 (으)로 로그인 하고 다시 시도해 주십시오." +${LangFileString} WANT_UNINSTALL_BEFORE "$R1 이(가) 이미 설치되었습니다. $\n$(^Name) 을(를) 설치하기 전에 이전 버전을 제거할까요?" +${LangFileString} OK_CANCEL_DESC "$\n$\n계속하려면 [확인]을, 중단하려면 [취소]를 누르십시오." +${LangFileString} NO_ADMIN "관리자 권한이 없습니다.$\r$\n잉크스케이프를 모든 사용자용으로 설치하기가 정상적으로 완료되지 않을 수 있습니다.$\r$\n‘모든 사용자용으로 설치’ 옵션을 체크 해제 하십시오." +${LangFileString} NOT_SUPPORTED "잉크스케이프는 Windows 95/98/ME에서는 실행되지 않는 것으로 알려져 있습니다!$\r$\n자세한 정보는 공식 웹사이트에서 확인하십시오." +${LangFileString} Full "전부" +${LangFileString} Optimal "최적" +${LangFileString} Minimal "최소" +${LangFileString} Core "잉크스케이프 SVG 편집기 (필수)" +${LangFileString} CoreDesc "잉크스케이프 핵심 파일들과 DLL들" +${LangFileString} GTKFiles "GTK+ 런타임 환경 (필수)" +${LangFileString} GTKFilesDesc "다중-플랫폼 GUI 툴킷 (잉크스케이프가 사용함)" +${LangFileString} Shortcuts "바로 가기" +${LangFileString} ShortcutsDesc "잉크스케이프 시작 바로 가기" +${LangFileString} Alluser "모든 사용자용으로 설치" +${LangFileString} AlluserDesc "이 컴퓨터를 사용하는 모든 사용자를 위해 이 애플리케이션을 설치 (모든 사용자)" +${LangFileString} Desktop "바탕 화면" +${LangFileString} DesktopDesc "잉크스케이프 바로 가기를 바탕 화면에 작성" +${LangFileString} Startmenu "시작 메뉴" +${LangFileString} StartmenuDesc "시작 메뉴에 잉크스케이프용 항목 작성" +${LangFileString} Quicklaunch "빠른 실행" +${LangFileString} QuicklaunchDesc "빠른 실행 도구바에 잉크스케이프 바로 가기 작성" +${LangFileString} SVGWriter "SVG 파일을 잉크스케이프로 열기" +${LangFileString} SVGWriterDesc "잉크스케이프를 SVG 파일용 기본 편집기로 선택" +${LangFileString} ContextMenu "문맥 메뉴" +${LangFileString} ContextMenuDesc "잉크스케이프를 SVG 파일용 문맥 메뉴에 추가" +${LangFileString} DeletePrefs "사용자 기본 설정 삭제" +${LangFileString} DeletePrefsDesc "이전의 설치한 버전들에서 남겨 놓은 사용자 기본 설정을 삭제" +${LangFileString} Python "Python 2.7" +${LangFileString} PythonDesc "잉크스케이프 확장 기능 실행에 필요한 Python 프로그래밍 언어용 인터프리터 및 Python 모듈" +${LangFileString} Addfiles "추가 파일" +${LangFileString} AddfilesDesc "추가 파일" +${LangFileString} Extensions "확장 기능" +${LangFileString} ExtensionsDesc "잉크스케이프 확장 기능 (여러 가지 들여 오기 및 내보내기 플러그인을 포함)" +${LangFileString} Examples "예제" +${LangFileString} ExamplesDesc "잉크스케이프를 이용한 예제" +${LangFileString} Tutorials "자습서" +${LangFileString} TutorialsDesc "잉크스케이프를 이용한 자습서" +${LangFileString} Dictionaries "사전" +${LangFileString} DictionariesDesc "잉크스케이프 안에서 철자 검사에 이용할 몇 개의 일반적 언어용 사전" +${LangFileString} Languages "번역" +${LangFileString} LanguagesDesc "잉크스케이프용 번역 및 지역에 맞춘 내용" +${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 "언제나 [아니요]로 대답" diff --git a/packaging/win32/languages/Korean_languageNames.nsh b/packaging/win32/languages/Korean_languageNames.nsh new file mode 100644 index 000000000..6c06577f1 --- /dev/null +++ b/packaging/win32/languages/Korean_languageNames.nsh @@ -0,0 +1,94 @@ +### Korean (ko) translations for language names +# This file has been automatically created by '_language_lists.py', do not edit it manually! +# Strings that should be translated are in 'Korean.nsh' +${LangFileString} lng_am "에티오피아 어 (am)" +${LangFileString} lng_ar "아라비아 어 (ar)" +${LangFileString} lng_as "Assamese (as)" +${LangFileString} lng_az "아제르바이잔 어 (az)" +${LangFileString} lng_be "벨라루시 어 (be)" +${LangFileString} lng_bg "불가리아 어 (bg)" +${LangFileString} lng_bn "인도어 (bn)" +${LangFileString} lng_bn_BD "Bengali/Bangladesh (bn_BD)" +${LangFileString} lng_br "브레튼 어 (br)" +${LangFileString} lng_brx "Bodo (brx)" +${LangFileString} lng_ca "카탈로니아 어 (ca)" +${LangFileString} lng_ca@valencia "발렌시아 카탈로니아어 (ca@vlencia)" +${LangFileString} lng_cs "체코 어 (cs)" +${LangFileString} lng_da "덴마크 어 (da)" +${LangFileString} lng_de "독일어 (de)" +${LangFileString} lng_doi "Dogri (doi)" +${LangFileString} lng_dz "종카 어 (dz)" +${LangFileString} lng_el "그리스 어 (el)" +${LangFileString} lng_en "영어 (en)" +${LangFileString} lng_en_AU "영어/호주 (en_AU)" +${LangFileString} lng_en_CA "영어/캐나다 (en_CA)" +${LangFileString} lng_en_GB "영어/그레이트 브리튼 (en_GB)" +${LangFileString} lng_en_US@piglatin "피그 라틴 (en_US@piglatin)" +${LangFileString} lng_eo "에스페란토 어 (eo)" +${LangFileString} lng_es "스페인 어 (es)" +${LangFileString} lng_es_MX "스페인 어/멕시코 (es_MX)" +${LangFileString} lng_et "에스토니아 어 (et)" +${LangFileString} lng_eu "바스크 어 (eu)" +${LangFileString} lng_fa "Farsi (fa)" +${LangFileString} lng_fi "핀란드 어 (fi)" +${LangFileString} lng_fr "프랑스 어 (fr)" +${LangFileString} lng_ga "아일랜드 어 (ga)" +${LangFileString} lng_gl "갈라시아 어 (gl)" +${LangFileString} lng_gu "Gujarati (gu)" +${LangFileString} lng_he "히브리 어 (he)" +${LangFileString} lng_hi "Hindi (hi)" +${LangFileString} lng_hr "크로아티아 어 (hr)" +${LangFileString} lng_hu "헝가리 어 (hu)" +${LangFileString} lng_hy "아르메니아 어 (hy)" +${LangFileString} lng_id "인도네시아 어 (id)" +${LangFileString} lng_is "Icelandic (is)" +${LangFileString} lng_it "이탈리아 어 (it)" +${LangFileString} lng_ja "일본어 (ja)" +${LangFileString} lng_km "크메르 어 (km)" +${LangFileString} lng_kn "Kannada (kn)" +${LangFileString} lng_ko "한국어 (ko)" +${LangFileString} lng_kok "Konkani (kok)" +${LangFileString} lng_kok@latin "Konkani in Latin script (kok@latin)" +${LangFileString} lng_ks@aran "Kashmiri in Perso-Arabic script (ks@aran)" +${LangFileString} lng_ks@deva "Kashmiri in Devanagari script (ks@deva)" +${LangFileString} lng_lt "리투아니아 어 (lt)" +${LangFileString} lng_lv "Latvian (lv)" +${LangFileString} lng_mai "Maithili (mai)" +${LangFileString} lng_mk "마케도니아 어 (mk)" +${LangFileString} lng_ml "Malayalam (ml)" +${LangFileString} lng_mn "몽골 어 (mn)" +${LangFileString} lng_mni "Manipuri (mni)" +${LangFileString} lng_mni@beng "Manipuri in Bengali script (mni@beng)" +${LangFileString} lng_mr "Marathi (mr)" +${LangFileString} lng_nb "노르웨이 보크몰 어 (nb)" +${LangFileString} lng_ne "네팔 어 (ne)" +${LangFileString} lng_nl "네델란드 어 (nl)" +${LangFileString} lng_nn "노르웨이 뉘노르스크 (nn)" +${LangFileString} lng_or "Odia (or)" +${LangFileString} lng_pa "펀잡 어 (pa)" +${LangFileString} lng_pl "폴란드 어 (pl)" +${LangFileString} lng_pt "포르투갈 어 (pt)" +${LangFileString} lng_pt_BR "브라질 어 (pt_BR)" +${LangFileString} lng_ro "로마 어 (ro)" +${LangFileString} lng_ru "러시아 어 (ru)" +${LangFileString} lng_rw "킨야르완다 (rw)" +${LangFileString} lng_sa "Sanskrit (sa)" +${LangFileString} lng_sat "Santali (sat)" +${LangFileString} lng_sat@deva "Santali in Devanagari script (sat@deva)" +${LangFileString} lng_sd "Sindhi (sd)" +${LangFileString} lng_sd@deva "Sindhi in Devanagari script (sd@deva)" +${LangFileString} lng_sk "슬로바키아 어 (sk)" +${LangFileString} lng_sl "슬로베니아 어 (sl)" +${LangFileString} lng_sq "알바니아 어 (sq)" +${LangFileString} lng_sr "세르비아 어 (sr)" +${LangFileString} lng_sr@latin "세르비아 어 라틴스크립트 (sr@latin)" +${LangFileString} lng_sv "스웨덴 어 (sv)" +${LangFileString} lng_ta "타밀 어 (ta)" +${LangFileString} lng_te "Telugu (te)" +${LangFileString} lng_th "태국어 (th)" +${LangFileString} lng_tr "터키 어 (tr)" +${LangFileString} lng_uk "우크라이나 어 (uk)" +${LangFileString} lng_ur "Urdu (ur)" +${LangFileString} lng_vi "베트남 어 (vi)" +${LangFileString} lng_zh_CN "중국어/중국 (zh_CN)" +${LangFileString} lng_zh_TW "중국어/타이완 (zh_TW)" diff --git a/packaging/win32/languages/_language_lists.nsh b/packaging/win32/languages/_language_lists.nsh index 5aefeb0cc..61eae69a1 100644 --- a/packaging/win32/languages/_language_lists.nsh +++ b/packaging/win32/languages/_language_lists.nsh @@ -27,6 +27,7 @@ !insertmacro ${_MACRONAME} Indonesian 1057 !insertmacro ${_MACRONAME} Italian 1040 !insertmacro ${_MACRONAME} Japanese 1041 + !insertmacro ${_MACRONAME} Korean 1042 !insertmacro ${_MACRONAME} Polish 1045 !insertmacro ${_MACRONAME} Portuguese 2070 !insertmacro ${_MACRONAME} PortugueseBR 1046 -- cgit v1.2.3 From fafdbf5b15257d50a3810d1ef1ad546ce8cb1c90 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Fri, 22 Dec 2017 17:36:08 +0100 Subject: Remove inkscape.file.svg (and inkscape.file.png) It was added in 8aeb053f557456d83b60acdcf1446a6825a5aef6 but seems to have never been used. It was only referenced in inkscape.nsi (where it's not required) which broke when the file was moved in ce456d55bb3deee828dad9cdaf1f530194cae93c --- packaging/win32/inkscape.nsi | 5 - .../hicolor/scalable/actions/inkscape.file.svg | 178 --------------------- share/icons/inkscape.file.png | Bin 1994 -> 0 bytes 3 files changed, 183 deletions(-) delete mode 100644 share/icons/hicolor/scalable/actions/inkscape.file.svg delete mode 100644 share/icons/inkscape.file.png diff --git a/packaging/win32/inkscape.nsi b/packaging/win32/inkscape.nsi index 3b13b4708..3f804264c 100644 --- a/packaging/win32/inkscape.nsi +++ b/packaging/win32/inkscape.nsi @@ -314,11 +314,6 @@ Section "$(Core)" SecCore ; Mandatory Inkscape core files section {{{ File /nonfatal /a /r /x *.??*.???* /x examples /x extensions /x locale /x tutorials ${INKSCAPE_DIST_DIR}\share\*.* !insertmacro UNINSTALL.LOG_CLOSE_INSTALL ; this files are added because it slips through the filter - SetOutPath $INSTDIR\share\icons - !insertmacro UNINSTALL.LOG_OPEN_INSTALL - File /a ${INKSCAPE_DIST_DIR}\share\icons\inkscape.file.png - File /a ${INKSCAPE_DIST_DIR}\share\icons\inkscape.file.svg - !insertmacro UNINSTALL.LOG_CLOSE_INSTALL SetOutPath $INSTDIR\share\templates !insertmacro UNINSTALL.LOG_OPEN_INSTALL File /a ${INKSCAPE_DIST_DIR}\share\templates\default.en_US.svg diff --git a/share/icons/hicolor/scalable/actions/inkscape.file.svg b/share/icons/hicolor/scalable/actions/inkscape.file.svg deleted file mode 100644 index 5803d94bf..000000000 --- a/share/icons/hicolor/scalable/actions/inkscape.file.svg +++ /dev/null @@ -1,178 +0,0 @@ - - -Inkscape Filetype Icon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -image/svg+xml - - - -Andy Fitzsimon - - - - -Andrew Michael Fitzsimon - - - - -Fitzsimon IT Consulting Pty Ltd - - -http://andy.fitzsimon.com.au -2006 - -Inkscape Filetype Icon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/share/icons/inkscape.file.png b/share/icons/inkscape.file.png deleted file mode 100644 index df5b7e44a..000000000 Binary files a/share/icons/inkscape.file.png and /dev/null differ -- cgit v1.2.3 From 2b8d9986140cc36ea6c0a3c3b88571983490e0ef Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Fri, 22 Dec 2017 19:55:07 +0100 Subject: Allow extensions to throw more fine-grained exceptions This allows to tell the user something more helpful than "File could not be saved" (leaving the reason open for speculation). The former implementation somehow grew to only ever throw Inkscape::Extension::Output::save_failed for any exception that occurred (which did not really matter as we did not throw anything else but certainly wasn't very useful either). Questionable throwing behavior was introduced in commits trying to workaround other issues: - output.cpp a874b82b41c08fc1738b449d400fcc6aeb85d72a - system.cpp d8d60c60ebeeefb068d9b68bf7d96f1f1f88518a --- src/extension/output.cpp | 7 +------ src/extension/system.cpp | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/extension/output.cpp b/src/extension/output.cpp index 83f0fed2f..ccfee2c14 100644 --- a/src/extension/output.cpp +++ b/src/extension/output.cpp @@ -213,12 +213,7 @@ Output::prefs (void) void Output::save(SPDocument *doc, gchar const *filename) { - try { - imp->save(this, doc, filename); - } - catch (...) { - throw Inkscape::Extension::Output::save_failed(); - } + imp->save(this, doc, filename); return; } diff --git a/src/extension/system.cpp b/src/extension/system.cpp index e5b83cd20..888a1076a 100644 --- a/src/extension/system.cpp +++ b/src/extension/system.cpp @@ -330,7 +330,7 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension, g_free(fileName); - throw Inkscape::Extension::Output::save_failed(); + throw; } // If it is an unofficial save, set the modified attributes back to what they were. -- cgit v1.2.3 From f589e1fdc71cba2025d940232f132ab0622adda7 Mon Sep 17 00:00:00 2001 From: Eduard Braun Date: Fri, 22 Dec 2017 20:17:01 +0100 Subject: Show appropriate warning if non-existent export ID is specified Fixed bug: - https://bugs.launchpad.net/inkscape/+bug/1739497 --- src/extension/internal/cairo-ps-out.cpp | 3 +++ src/extension/internal/cairo-renderer-pdf-out.cpp | 3 +++ src/extension/internal/latex-text-renderer.cpp | 5 ++++- src/extension/output.h | 5 +++++ src/file.cpp | 7 +++++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/extension/internal/cairo-ps-out.cpp b/src/extension/internal/cairo-ps-out.cpp index e8f47e79e..57169ed45 100644 --- a/src/extension/internal/cairo-ps-out.cpp +++ b/src/extension/internal/cairo-ps-out.cpp @@ -76,6 +76,9 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int l if (exportId && strcmp(exportId, "")) { // we want to export the given item only base = SP_ITEM(doc->getObjectById(exportId)); + if (!base) { + throw Inkscape::Extension::Output::export_id_not_found(exportId); + } pageBoundingBox = exportCanvas; } else { diff --git a/src/extension/internal/cairo-renderer-pdf-out.cpp b/src/extension/internal/cairo-renderer-pdf-out.cpp index 5576676b2..865de1a07 100644 --- a/src/extension/internal/cairo-renderer-pdf-out.cpp +++ b/src/extension/internal/cairo-renderer-pdf-out.cpp @@ -71,6 +71,9 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int if (exportId && strcmp(exportId, "")) { // we want to export the given item only base = SP_ITEM(doc->getObjectById(exportId)); + if (!base) { + throw Inkscape::Extension::Output::export_id_not_found(exportId); + } pageBoundingBox = exportCanvas; } else { diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index 7a1cacbf2..960aec7a9 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -41,6 +41,7 @@ #include "util/units.h" +#include "extension/output.h" #include "extension/system.h" #include "inkscape-version.h" @@ -68,7 +69,9 @@ latex_render_document_text_to_file( SPDocument *doc, gchar const *filename, if (exportId && strcmp(exportId, "")) { // we want to export the given item only base = dynamic_cast(doc->getObjectById(exportId)); - g_assert(base != NULL); + if (!base) { + throw Inkscape::Extension::Output::export_id_not_found(exportId); + } pageBoundingBox = exportCanvas; } else { diff --git a/src/extension/output.h b/src/extension/output.h index 44a731ca0..420eb9245 100644 --- a/src/extension/output.h +++ b/src/extension/output.h @@ -31,6 +31,11 @@ public: class save_cancelled {}; /**< Saving was cancelled */ class no_extension_found {}; /**< Failed because we couldn't find an extension to match the filename */ class file_read_only {}; /**< The existing file can not be opened for writing */ + class export_id_not_found { /**< The object ID requested for export could not be found in the document */ + public: + const gchar * const id; + export_id_not_found(const gchar * const id = NULL) : id{id} {}; + }; Output (Inkscape::XML::Node * in_repr, Implementation::Implementation * in_imp); diff --git a/src/file.cpp b/src/file.cpp index e5caaaca0..9cf0448e1 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -658,6 +658,13 @@ file_save(Gtk::Window &parentWindow, SPDocument *doc, const Glib::ustring &uri, SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::ERROR_MESSAGE, _("Document not saved.")); doc->getReprRoot()->setAttribute("inkscape:version", sp_version_to_string( save )); return false; + } catch (Inkscape::Extension::Output::export_id_not_found &e) { + gchar *text = g_strdup_printf(_("File could not be saved:\nNo object with ID '%s' found."), e.id); + SP_ACTIVE_DESKTOP->messageStack()->flash(Inkscape::ERROR_MESSAGE, _("Document not saved.")); + sp_ui_error_dialog(text); + g_free(text); + doc->getReprRoot()->setAttribute("inkscape:version", sp_version_to_string( save )); + return false; } catch (Inkscape::Extension::Output::no_overwrite &e) { return sp_file_save_dialog(parentWindow, doc, save_method); } catch (...) { -- cgit v1.2.3 From 9f858e0cb6515c09b1bff1456e91de4ffd05c889 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 24 Dec 2017 10:10:50 +0100 Subject: Name a few more widgets. Minor cleanup. --- src/ui/dialog/dialog.cpp | 11 ++++++++--- src/ui/dialog/memory.cpp | 2 +- src/ui/widget/color-notebook.cpp | 2 ++ src/ui/widget/color-wheel-selector.cpp | 2 ++ src/ui/widget/dock-item.cpp | 3 +-- src/ui/widget/dock-item.h | 3 +-- src/ui/widget/dock.cpp | 29 +++++++++++++---------------- src/ui/widget/dock.h | 2 +- 8 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp index e50824c7b..fbbb4f869 100644 --- a/src/ui/dialog/dialog.cpp +++ b/src/ui/dialog/dialog.cpp @@ -168,9 +168,14 @@ void Dialog::read_geometry() #if WITH_GTKMM_3_22 auto const display = Gdk::Display::get_default(); - auto const monitor = display->get_primary_monitor(); + auto monitor = display->get_primary_monitor(); + + // If user hasn't configured a primary monitor, nullptr is returned so try first monitor. + if (!monitor) { + std::cerr << "Dialog::read_geometry: no primary monitor configured!" << std::endl; + monitor = display->get_monitor(0); + } - // If user hasn't configured a primary monitor, nullptr is returned. Gdk::Rectangle screen_geometry; if (monitor) { monitor->get_geometry(screen_geometry); @@ -179,7 +184,7 @@ void Dialog::read_geometry() auto const screen_height = screen_geometry.get_height(); #else auto const screen_width = gdk_screen_width(); - auto const screen_height = gdk_screen_width(); + auto const screen_height = gdk_screen_height(); #endif // If there are stored values for where the dialog should be diff --git a/src/ui/dialog/memory.cpp b/src/ui/dialog/memory.cpp index f08089774..074a6a884 100644 --- a/src/ui/dialog/memory.cpp +++ b/src/ui/dialog/memory.cpp @@ -210,7 +210,7 @@ Memory::Memory() : UI::Widget::Panel ("", "/dialogs/memory", SP_VERB_HELP_MEMORY, _("Recalculate")), _private(*(new Memory::Private())) { - _getContents()->add(_private.view); + _getContents()->pack_start(_private.view); _private.update(); diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index d60150767..cda41bdb7 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -55,6 +55,8 @@ ColorNotebook::ColorNotebook(SelectedColor &color) : Gtk::Grid() , _selected_color(color) { + set_name("ColorNotebook"); + Page *page; page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 6bbb8e21d..ffdf173ba 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -31,6 +31,8 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color) , _wheel(0) , _slider(0) { + set_name("ColorWheelSelector"); + _initUI(); _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp index 4a06163e1..29f22977a 100644 --- a/src/ui/widget/dock-item.cpp +++ b/src/ui/widget/dock-item.cpp @@ -29,8 +29,7 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l _x(0), _y(0), _grab_focus_on_realize(false), - _gdl_dock_item(0), - _dock_item_action_area(0) + _gdl_dock_item(0) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); GdlDockItemBehavior gdl_dock_behavior = diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h index b5f6c13af..31cdcf080 100644 --- a/src/ui/widget/dock-item.h +++ b/src/ui/widget/dock-item.h @@ -108,11 +108,10 @@ private: Glib::RefPtr _icon_pixbuf; /** Interface widgets, will be packed like - * gdl_dock_item -> _frame -> _dock_item_box -> (_dock_item_action_area) + * gdl_dock_item -> _frame -> _dock_item_box */ Gtk::Frame _frame; Gtk::VBox _dock_item_box; - Gtk::HButtonBox *_dock_item_action_area; /** Internal signal handlers */ void _onHide(); diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp index 20ec707d8..9c1f0f783 100644 --- a/src/ui/widget/dock.cpp +++ b/src/ui/widget/dock.cpp @@ -56,7 +56,8 @@ Dock::Dock(Gtk::Orientation orientation) #endif _scrolled_window (Gtk::manage(new Gtk::ScrolledWindow)) { - _scrolled_window->set_name("Dock"); + gtk_widget_set_name(_gdl_dock, "GdlDock"); + #if WITH_GDL_3_6 gtk_orientable_set_orientation(GTK_ORIENTABLE(_gdl_dock_bar), static_cast(orientation)); @@ -65,25 +66,22 @@ Dock::Dock(Gtk::Orientation orientation) static_cast(orientation)); #endif - switch(orientation) { - case Gtk::ORIENTATION_VERTICAL: - _dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); - break; - case Gtk::ORIENTATION_HORIZONTAL: - _dock_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL)); - } - - _paned = Gtk::manage(new Gtk::Paned(orientation)); + _filler.set_name("DockBoxFiller"); - _scrolled_window->add(*_dock_box); - _scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); - - _paned->pack1(*Glib::wrap(GTK_WIDGET(_gdl_dock)), false, false); - _paned->pack2(_filler, true, false); + _paned = Gtk::manage(new Gtk::Paned(orientation)); + _paned->set_name("DockBoxPane"); + _paned->pack1(*Glib::wrap(GTK_WIDGET(_gdl_dock)), false, false); + _paned->pack2(_filler, true, false); + // resize, shrink + _dock_box = Gtk::manage(new Gtk::Box(orientation)); + _dock_box->set_name("DockBox"); _dock_box->pack_start(*_paned, Gtk::PACK_EXPAND_WIDGET); _dock_box->pack_end(*Gtk::manage(Glib::wrap(GTK_WIDGET(_gdl_dock_bar))), Gtk::PACK_SHRINK); + _scrolled_window->set_name("DockScrolledWindow"); + _scrolled_window->add(*_dock_box); + _scrolled_window->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); _scrolled_window->set_size_request(0); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -215,7 +213,6 @@ void Dock::toggleDockable(int width, int height) parent_paned->set_position(prev_horizontal_position); _paned->set_position(prev_vertical_position); } - } void Dock::scrollToItem(DockItem& item) diff --git a/src/ui/widget/dock.h b/src/ui/widget/dock.h index 6258a06e3..efdb6fa39 100644 --- a/src/ui/widget/dock.h +++ b/src/ui/widget/dock.h @@ -70,7 +70,7 @@ protected: Gtk::Paned *_paned; GtkWidget *_gdl_dock; GdlDockBar *_gdl_dock_bar; - Gtk::VBox _filler; + Gtk::Box _filler; Gtk::ScrolledWindow *_scrolled_window; /** Internal signal handlers */ -- cgit v1.2.3 From 83287d0d146821d6376a87c51522860d08e7ef48 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 24 Dec 2017 23:31:21 +0100 Subject: Bug fixes for radio action mode. --- src/ui/widget/ink-select-one-action.cpp | 19 ++++++++++++++----- src/ui/widget/ink-select-one-action.h | 6 ++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/ui/widget/ink-select-one-action.cpp b/src/ui/widget/ink-select-one-action.cpp index 40bafecc2..dedfb8894 100644 --- a/src/ui/widget/ink-select-one-action.cpp +++ b/src/ui/widget/ink-select-one-action.cpp @@ -31,22 +31,22 @@ #include InkSelectOneAction* InkSelectOneAction::create(const Glib::ustring &name, - const Glib::ustring &label, + const Glib::ustring &group_label, const Glib::ustring &tooltip, const Glib::ustring &stock_id, Glib::RefPtr store ) { - return new InkSelectOneAction(name, label, tooltip, stock_id, store); + return new InkSelectOneAction(name, group_label, tooltip, stock_id, store); } InkSelectOneAction::InkSelectOneAction (const Glib::ustring &name, - const Glib::ustring &label, + const Glib::ustring &group_label, const Glib::ustring &tooltip, const Glib::ustring &stock_id, Glib::RefPtr store ) : - Gtk::Action(name, stock_id, label, tooltip), + Gtk::Action(name, stock_id, group_label, tooltip), _name( name ), - _label( label ), + _group_label( group_label ), _tooltip( tooltip ), _stock_id( stock_id ), _store (store), @@ -136,6 +136,11 @@ Gtk::Widget* InkSelectOneAction::create_tool_item_vfunc() { Gtk::Box* box = Gtk::manage(new Gtk::Box()); tool_item->add (*box); + if (_use_group_label) { + Gtk::Label *group_label = Gtk::manage (new Gtk::Label( _group_label + ": " )); + box->add( *group_label ); + } + Gtk::RadioAction::Group group; int index = 0; auto children = _store->children(); @@ -167,6 +172,10 @@ Gtk::Widget* InkSelectOneAction::create_tool_item_vfunc() { box->add (*item); } + if (_radioaction) { + _radioaction->set_current_value (_active); + } + _radioaction->signal_changed().connect( sigc::mem_fun(*this, &InkSelectOneAction::on_changed_radioaction)); } else { diff --git a/src/ui/widget/ink-select-one-action.h b/src/ui/widget/ink-select-one-action.h index 194ca8027..0b1b08de4 100644 --- a/src/ui/widget/ink-select-one-action.h +++ b/src/ui/widget/ink-select-one-action.h @@ -61,6 +61,7 @@ public: void use_radio( bool use_radio ) { _use_radio = use_radio; } void use_label( bool use_label ) { _use_label = use_label; } void use_icon( bool use_icon ) { _use_icon = use_icon; } + void use_group_label( bool use_group_label ) { _use_group_label = use_group_label; } gint get_active() { return _active; } void set_active( gint active ); @@ -81,7 +82,7 @@ protected: private: Glib::ustring _name; - Glib::ustring _label; + Glib::ustring _group_label; Glib::ustring _tooltip; Glib::ustring _stock_id; Glib::RefPtr _store; @@ -92,6 +93,7 @@ private: bool _use_radio; // Applies to tool item only bool _use_label; bool _use_icon; // Applies to menu item only + bool _use_group_label; // Applies to tool item only Gtk::BuiltinIconSize _icon_size; /* Combobox in tool */ @@ -109,7 +111,7 @@ private: void on_toggled_radiomenu(int n); InkSelectOneAction (const Glib::ustring &name, - const Glib::ustring &label, + const Glib::ustring &group_label, const Glib::ustring &tooltip, const Glib::ustring &stock_id, Glib::RefPtr store ); -- cgit v1.2.3 From a03fc5d62270b5ab3b85d9f2382f47eabdadfe75 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 24 Dec 2017 23:32:57 +0100 Subject: Convert spray tool to use ink-select-one-action. --- src/widgets/spray-toolbar.cpp | 93 +++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 48 deletions(-) diff --git a/src/widgets/spray-toolbar.cpp b/src/widgets/spray-toolbar.cpp index 2a56d81cb..140c60ef6 100644 --- a/src/widgets/spray-toolbar.cpp +++ b/src/widgets/spray-toolbar.cpp @@ -35,13 +35,13 @@ #include "desktop.h" #include "inkscape.h" #include "widgets/ege-adjustment-action.h" -#include "widgets/ege-select-one-action.h" #include "ink-radio-action.h" #include "ink-toggle-action.h" #include "toolbox.h" #include "ui/dialog/clonetiler.h" #include "ui/dialog/dialog-manager.h" #include "ui/dialog/panel-dialog.h" +#include "ui/widget/ink-select-one-action.h" #include "ui/icon-names.h" #include @@ -101,6 +101,7 @@ static void sp_stb_update_widgets( GObject *tbl ) static void sp_spray_init( GObject *tbl){ Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int mode = prefs->getInt("/tools/spray/mode", 0); + bool show = true; if(mode == 3 || mode == 2){ show = false; @@ -161,9 +162,8 @@ static void sp_spray_standard_deviation_value_changed( GtkAdjustment *adj, GObje gtk_adjustment_get_value(adj)); } -static void sp_spray_mode_changed( EgeSelectOneAction *act, GObject * tbl ) +static void sp_spray_mode_changed( GObject * tbl, int mode ) { - int mode = ege_select_one_action_get_active( act ); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setInt("/tools/spray/mode", mode); sp_spray_init(tbl); @@ -352,56 +352,53 @@ void sp_spray_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObj /* Mode */ { - GtkListStore* model = gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING ); - - GtkTreeIter iter; - gtk_list_store_append( model, &iter ); - gtk_list_store_set( model, &iter, - 0, _("Spray with copies"), - 1, _("Spray copies of the initial selection"), - 2, INKSCAPE_ICON("spray-mode-copy"), - -1 ); - - gtk_list_store_append( model, &iter ); - gtk_list_store_set( model, &iter, - 0, _("Spray with clones"), - 1, _("Spray clones of the initial selection"), - 2, INKSCAPE_ICON("spray-mode-clone"), - -1 ); - + InkSelectOneActionColumns columns; + + Glib::RefPtr store = Gtk::ListStore::create(columns); + + Gtk::TreeModel::Row row; + + row = *(store->append()); + row[columns.col_label ] = _("Spray with copies"); + row[columns.col_tooltip ] = _("Spray copies of the initial selection"); + row[columns.col_icon ] = INKSCAPE_ICON("spray-mode-copy"); + row[columns.col_sensitive] = true; + + row = *(store->append()); + row[columns.col_label ] = _("Spray with clones"); + row[columns.col_tooltip ] = _("Spray clones of the initial selection"); + row[columns.col_icon ] = INKSCAPE_ICON("spray-mode-clone"); + row[columns.col_sensitive] = true; + #ifdef ENABLE_SPRAY_MODE_SINGLE_PATH - gtk_list_store_append( model, &iter ); - gtk_list_store_set( model, &iter, - 0, _("Spray single path"), - 1, _("Spray objects in a single path"), - 2, INKSCAPE_ICON("spray-mode-union"), - -1 ); + row = *(store->append()); + row[columns.col_label ] = _("Spray single path"); + row[columns.col_tooltip ] = _("Spray objects in a single path"); + row[columns.col_icon ] = INKSCAPE_ICON("spray-mode-union"); + row[columns.col_sensitive] = true; #endif - - gtk_list_store_append( model, &iter ); - gtk_list_store_set( model, &iter, - 0, _("Delete sprayed items"), - 1, _("Delete sprayed items from selection"), - 2, INKSCAPE_ICON("draw-eraser"), - -1 ); - - EgeSelectOneAction* act = ege_select_one_action_new( "SprayModeAction", _("Mode"), (""), NULL, GTK_TREE_MODEL(model) ); - g_object_set( act, "short_label", _("Mode:"), NULL ); - gtk_action_group_add_action( mainActions, GTK_ACTION(act) ); - g_object_set_data( holder, "mode_action", act ); - - ege_select_one_action_set_appearance( act, "full" ); - ege_select_one_action_set_radio_action_type( act, INK_RADIO_ACTION_TYPE ); - g_object_set( G_OBJECT(act), "icon-property", "iconId", NULL ); - ege_select_one_action_set_icon_column( act, 2 ); - ege_select_one_action_set_icon_size( act, secondarySize ); - ege_select_one_action_set_tooltip_column( act, 1 ); + row = *(store->append()); + row[columns.col_label ] = _("Delete sprayed items"); + row[columns.col_tooltip ] = _("Delete sprayed items from selection"); + row[columns.col_icon ] = INKSCAPE_ICON("draw-eraser"); + row[columns.col_sensitive] = true; + + InkSelectOneAction* act = + InkSelectOneAction::create( "SprayModeAction", // Name + _("Mode"), // Label + _(""), // Tooltip + "Not Used", // Icon + store ); // Tree store + + act->use_radio( true ); + act->use_group_label( true ); gint mode = prefs->getInt("/tools/spray/mode", 1); - ege_select_one_action_set_active( act, mode ); - g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_spray_mode_changed), holder ); + act->set_active( mode ); + + gtk_action_group_add_action( mainActions, GTK_ACTION( act->gobj() )); - g_object_set_data( G_OBJECT(holder), "spray_tool_mode", act); + act->signal_changed().connect(sigc::bind<0>(sigc::ptr_fun(&sp_spray_mode_changed), holder)); } { /* Population */ -- cgit v1.2.3 From 8e2119c2042debcf51998631e64809e627b148c2 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Mon, 25 Dec 2017 17:16:41 +0000 Subject: Use a macro for GtkMM version checks --- CMakeScripts/DefineDependsandFlags.cmake | 48 - config.h.cmake | 25 + po/inkscape.pot | 6701 +++++++++++++++-------------- src/live_effects/lpe-perspective_path.cpp | 4 +- src/sp-namedview.cpp | 6 +- src/ui/dialog/aboutbox.cpp | 8 +- src/ui/dialog/dialog.cpp | 4 +- src/ui/dialog/document-properties.cpp | 6 +- src/ui/dialog/layers.cpp | 2 +- src/ui/dialog/new-from-template.cpp | 2 +- src/ui/dialog/objects.cpp | 2 +- src/ui/interface.cpp | 4 +- src/ui/widget/preferences-widget.cpp | 4 +- src/widgets/sp-attribute-widget.cpp | 4 +- 14 files changed, 3621 insertions(+), 3199 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b1ffbc9c8..fac2d2160 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -247,54 +247,6 @@ set(TRY_GTKSPELL ON) ) list(APPEND INKSCAPE_CXX_FLAGS ${GTK3_CFLAGS_OTHER}) - # Check whether we can use new features in Gtkmm 3.10 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.10 - pkg_check_modules(GTKMM_3_10 - gtkmm-3.0>=3.10, - ) - - if("${GTKMM_3_10_FOUND}") - message("Using Gtkmm 3.10 build") - set (WITH_GTKMM_3_10 ON) - endif() - - # Check whether we can use new features in Gtkmm 3.12 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.12 - pkg_check_modules(GTKMM_3_12 - gtkmm-3.0>=3.12, - ) - - if("${GTKMM_3_12_FOUND}") - message("Using Gtkmm 3.12 build") - set (WITH_GTKMM_3_12 ON) - endif() - - # Check whether we can use new features in Gtkmm 3.16 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.16 - pkg_check_modules(GTKMM_3_16 - gtkmm-3.0>=3.16, - ) - - if("${GTKMM_3_16_FOUND}") - message("Using Gtkmm 3.16 build") - set (WITH_GTKMM_3_16 ON) - endif() - - # Check whether we can use new features in Gtkmm 3.22 - # TODO: Drop this test and bump the version number in the GTK test above - # as soon as all supported distributions provide Gtkmm >= 3.22 - pkg_check_modules(GTKMM_3_22 - gtkmm-3.0>=3.22, - ) - - if("${GTKMM_3_22_FOUND}") - message("Using Gtkmm 3.22 build") - set (WITH_GTKMM_3_22 ON) - endif() - pkg_check_modules(GDL_3_6 gdl-3.0>=3.6) if("${GDL_3_6_FOUND}") diff --git a/config.h.cmake b/config.h.cmake index f341b745b..70422fafb 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -225,6 +225,31 @@ /* Do we want experimental, unsupported, unguaranteed, etc., LivePathEffects enabled? */ #cmakedefine LPE_ENABLE_TEST_EFFECTS 1 +/** + * Check GtkMM version + * + * This is adapted from the upstream Gtk+ macro for use with GtkMM + * + * @todo Perhaps this should be in its own header? However, this is likely to + * be used very frequently, so It would be annoying to have to add another + * header inclusion in many files + * + * + * @major: major version (e.g. 1 for version 1.2.5) + * @minor: minor version (e.g. 2 for version 1.2.5) + * @micro: micro version (e.g. 5 for version 1.2.5) + * + * Returns %TRUE if the version of the GTK+ header files + * is the same as or newer than the passed-in version. + * + * Returns: %TRUE if GTK+ headers are new enough + */ +#define GTKMM_CHECK_VERSION(major,minor,micro) \ + (GTKMM_MAJOR_VERSION > (major) || \ + (GTKMM_MAJOR_VERSION == (major) && GTKMM_MINOR_VERSION > (minor)) || \ + (GTKMM_MAJOR_VERSION == (major) && GTKMM_MINOR_VERSION == (minor) && \ + GTKMM_MICRO_VERSION >= (micro))) + #endif /* _CONFIG_H_ */ diff --git a/po/inkscape.pot b/po/inkscape.pot index 82acfabdd..0335a9302 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: 2017-07-30 23:09+0200\n" +"POT-Creation-Date: 2017-12-17 23:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -317,7 +317,7 @@ msgstr "" #. Pencil #: ../share/filters/filters.svg.h:78 -#: ../src/ui/dialog/inkscape-preferences.cpp:419 +#: ../src/ui/dialog/inkscape-preferences.cpp:455 msgid "Pencil" msgstr "" @@ -1105,7 +1105,7 @@ msgstr "" #: ../share/extensions/color_removered.inx.h:2 #: ../share/extensions/color_replace.inx.h:6 #: ../share/extensions/color_rgbbarrel.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:21 +#: ../share/extensions/interp_att_g.inx.h:24 msgid "Color" msgstr "" @@ -4409,15 +4409,15 @@ msgstr "" #. 3D box #: ../src/box3d.cpp:251 ../src/box3d.cpp:1305 -#: ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/ui/dialog/inkscape-preferences.cpp:438 msgid "3D Box" msgstr "" -#: ../src/color-profile.cpp:897 ../src/color-profile.cpp:914 +#: ../src/color-profile.cpp:913 ../src/color-profile.cpp:930 msgid "(invalid UTF-8 string)" msgstr "" -#: ../src/color-profile.cpp:899 +#: ../src/color-profile.cpp:915 msgctxt "Profile name" msgid "None" msgstr "" @@ -4448,100 +4448,100 @@ msgstr "" msgid "Guideline: %s" msgstr "" -#: ../src/desktop.cpp:766 +#: ../src/desktop.cpp:760 msgid "No previous transform." msgstr "" -#: ../src/desktop.cpp:789 +#: ../src/desktop.cpp:783 msgid "No next transform." msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:325 ../src/display/canvas-grid.cpp:683 +#: ../src/display/canvas-axonomgrid.cpp:325 ../src/display/canvas-grid.cpp:680 msgid "Grid _units:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:327 ../src/display/canvas-grid.cpp:685 +#: ../src/display/canvas-axonomgrid.cpp:327 ../src/display/canvas-grid.cpp:682 msgid "_Origin X:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:327 ../src/display/canvas-grid.cpp:685 -#: ../src/ui/dialog/inkscape-preferences.cpp:777 -#: ../src/ui/dialog/inkscape-preferences.cpp:802 +#: ../src/display/canvas-axonomgrid.cpp:327 ../src/display/canvas-grid.cpp:682 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 +#: ../src/ui/dialog/inkscape-preferences.cpp:853 msgid "X coordinate of grid origin" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:330 ../src/display/canvas-grid.cpp:688 +#: ../src/display/canvas-axonomgrid.cpp:330 ../src/display/canvas-grid.cpp:685 msgid "O_rigin Y:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:330 ../src/display/canvas-grid.cpp:688 -#: ../src/ui/dialog/inkscape-preferences.cpp:778 -#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/display/canvas-axonomgrid.cpp:330 ../src/display/canvas-grid.cpp:685 +#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:854 msgid "Y coordinate of grid origin" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:333 ../src/display/canvas-grid.cpp:694 +#: ../src/display/canvas-axonomgrid.cpp:333 ../src/display/canvas-grid.cpp:691 msgid "Spacing _Y:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:333 -#: ../src/ui/dialog/inkscape-preferences.cpp:806 +#: ../src/ui/dialog/inkscape-preferences.cpp:857 msgid "Base length of z-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:336 -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:860 #: ../src/widgets/box3d-toolbar.cpp:301 msgid "Angle X:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:336 -#: ../src/ui/dialog/inkscape-preferences.cpp:809 +#: ../src/ui/dialog/inkscape-preferences.cpp:860 msgid "Angle of x-axis" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:338 -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:861 #: ../src/widgets/box3d-toolbar.cpp:380 msgid "Angle Z:" msgstr "" #: ../src/display/canvas-axonomgrid.cpp:338 -#: ../src/ui/dialog/inkscape-preferences.cpp:810 +#: ../src/ui/dialog/inkscape-preferences.cpp:861 msgid "Angle of z-axis" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:699 +#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:696 msgid "Minor grid line _color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:699 -#: ../src/ui/dialog/inkscape-preferences.cpp:761 +#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:696 +#: ../src/ui/dialog/inkscape-preferences.cpp:812 msgid "Minor grid line color" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:699 +#: ../src/display/canvas-axonomgrid.cpp:342 ../src/display/canvas-grid.cpp:696 msgid "Color of the minor grid lines" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:347 ../src/display/canvas-grid.cpp:704 +#: ../src/display/canvas-axonomgrid.cpp:347 ../src/display/canvas-grid.cpp:701 msgid "Ma_jor grid line color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:347 ../src/display/canvas-grid.cpp:704 -#: ../src/ui/dialog/inkscape-preferences.cpp:763 +#: ../src/display/canvas-axonomgrid.cpp:347 ../src/display/canvas-grid.cpp:701 +#: ../src/ui/dialog/inkscape-preferences.cpp:814 msgid "Major grid line color" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:348 ../src/display/canvas-grid.cpp:705 +#: ../src/display/canvas-axonomgrid.cpp:348 ../src/display/canvas-grid.cpp:702 msgid "Color of the major (highlighted) grid lines" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:352 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:352 ../src/display/canvas-grid.cpp:706 msgid "_Major grid line every:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:352 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:352 ../src/display/canvas-grid.cpp:706 msgid "lines" msgstr "" @@ -4553,59 +4553,59 @@ msgstr "" msgid "Axonometric grid" msgstr "" -#: ../src/display/canvas-grid.cpp:242 +#: ../src/display/canvas-grid.cpp:239 msgid "Create new grid" msgstr "" -#: ../src/display/canvas-grid.cpp:308 +#: ../src/display/canvas-grid.cpp:305 msgid "_Enabled" msgstr "" -#: ../src/display/canvas-grid.cpp:309 +#: ../src/display/canvas-grid.cpp:306 msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." msgstr "" -#: ../src/display/canvas-grid.cpp:313 +#: ../src/display/canvas-grid.cpp:310 msgid "Snap to visible _grid lines only" msgstr "" -#: ../src/display/canvas-grid.cpp:314 +#: ../src/display/canvas-grid.cpp:311 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" msgstr "" -#: ../src/display/canvas-grid.cpp:318 +#: ../src/display/canvas-grid.cpp:315 msgid "_Visible" msgstr "" -#: ../src/display/canvas-grid.cpp:319 +#: ../src/display/canvas-grid.cpp:316 msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." msgstr "" -#: ../src/display/canvas-grid.cpp:691 +#: ../src/display/canvas-grid.cpp:688 msgid "Spacing _X:" msgstr "" -#: ../src/display/canvas-grid.cpp:691 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 +#: ../src/display/canvas-grid.cpp:688 +#: ../src/ui/dialog/inkscape-preferences.cpp:834 msgid "Distance between vertical grid lines" msgstr "" -#: ../src/display/canvas-grid.cpp:694 -#: ../src/ui/dialog/inkscape-preferences.cpp:784 +#: ../src/display/canvas-grid.cpp:691 +#: ../src/ui/dialog/inkscape-preferences.cpp:835 msgid "Distance between horizontal grid lines" msgstr "" -#: ../src/display/canvas-grid.cpp:726 +#: ../src/display/canvas-grid.cpp:723 msgid "_Show dots instead of lines" msgstr "" -#: ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-grid.cpp:724 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "" @@ -4755,11 +4755,11 @@ msgstr "" msgid "Bounding box side midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1473 +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1468 msgid "Smooth node" msgstr "" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1472 +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1467 msgid "Cusp node" msgstr "" @@ -4815,35 +4815,35 @@ msgstr "" msgid " to " msgstr "" -#: ../src/document.cpp:553 +#: ../src/document.cpp:555 #, c-format msgid "New document %d" msgstr "" -#: ../src/document.cpp:558 +#: ../src/document.cpp:560 #, c-format msgid "Memory document %d" msgstr "" -#: ../src/document.cpp:587 +#: ../src/document.cpp:589 msgid "Memory document %1" msgstr "" -#: ../src/document.cpp:886 +#: ../src/document.cpp:888 #, c-format msgid "Unnamed document %d" msgstr "" -#: ../src/event-log.cpp:181 +#: ../src/event-log.cpp:179 msgid "[Unchanged]" msgstr "" #. Edit -#: ../src/event-log.cpp:367 ../src/event-log.cpp:370 ../src/verbs.cpp:2595 +#: ../src/event-log.cpp:365 ../src/event-log.cpp:368 ../src/verbs.cpp:2615 msgid "_Undo" msgstr "" -#: ../src/event-log.cpp:377 ../src/event-log.cpp:381 ../src/verbs.cpp:2597 +#: ../src/event-log.cpp:375 ../src/event-log.cpp:379 ../src/verbs.cpp:2617 msgid "_Redo" msgstr "" @@ -4871,12 +4871,12 @@ msgstr "" msgid " (No preferences)" msgstr "" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2367 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2387 msgid "Extensions" msgstr "" #. \FIXME change this -#. This is some filler text, needs to change before relase +#. This is some filler text, needs to change before release #: ../src/extension/error-file.cpp:54 msgid "" "One or more extensions failed to load(Choose if " "unsure.)" msgstr "" -#: ../src/file-update.cpp:336 +#: ../src/file-update.cpp:337 msgid "This file is intended for physical output, such as paper or 3D prints." msgstr "" -#: ../src/file-update.cpp:338 +#: ../src/file-update.cpp:339 msgid "" "The appearance of elements such as clips, masks, filters, and clones\n" "is most important. (Choose if unsure.)" msgstr "" -#: ../src/file-update.cpp:342 +#: ../src/file-update.cpp:343 msgid "" "The accuracy of the physical unit size and position values of objects\n" "in the file is most important. (Experimental.)" msgstr "" -#: ../src/file-update.cpp:344 +#: ../src/file-update.cpp:345 msgid "Create a backup file in same directory." msgstr "" -#: ../src/file-update.cpp:345 +#: ../src/file-update.cpp:346 msgid "More details..." msgstr "" -#: ../src/file-update.cpp:348 +#: ../src/file-update.cpp:349 msgid "" "We've updated Inkscape to follow the CSS standard of 96 DPI for " "better browser compatibility; we used to use 90 DPI. Digital artwork for " @@ -8314,130 +8320,130 @@ msgid "" "inkscape.org/en/learn/faq#dpi_change'>Inkscape FAQ" msgstr "" -#: ../src/file-update.cpp:391 +#: ../src/file-update.cpp:392 msgid "OK" msgstr "" #. Look for SPNamedView and SPDefs loop #. desktop->getDocument()->ensureUpToDate(); // Does not update box3d! -#: ../src/file-update.cpp:613 +#: ../src/file-update.cpp:614 msgid "Update Document" msgstr "" -#: ../src/file.cpp:165 +#: ../src/file.cpp:161 msgid "default.svg" msgstr "" -#: ../src/file.cpp:281 ../src/main-cmdlinexact.cpp:174 +#: ../src/file.cpp:282 ../src/main-cmdlinexact.cpp:174 msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:292 ../src/file.cpp:1347 +#: ../src/file.cpp:293 ../src/file.cpp:1263 #, c-format msgid "Failed to load the requested file %s" msgstr "" -#: ../src/file.cpp:318 +#: ../src/file.cpp:319 msgid "Document not saved yet. Cannot revert." msgstr "" -#: ../src/file.cpp:324 +#: ../src/file.cpp:325 msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" -#: ../src/file.cpp:350 +#: ../src/file.cpp:351 msgid "Document reverted." msgstr "" -#: ../src/file.cpp:352 +#: ../src/file.cpp:353 msgid "Document not reverted." msgstr "" -#: ../src/file.cpp:502 +#: ../src/file.cpp:503 msgid "Select file to open" msgstr "" -#: ../src/file.cpp:584 +#: ../src/file.cpp:585 msgid "Clean up document" msgstr "" -#: ../src/file.cpp:591 +#: ../src/file.cpp:592 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "" msgstr[1] "" -#: ../src/file.cpp:596 +#: ../src/file.cpp:597 msgid "No unused definitions in <defs>." msgstr "" -#: ../src/file.cpp:630 +#: ../src/file.cpp:631 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " "caused by an unknown filename extension." msgstr "" -#: ../src/file.cpp:631 ../src/file.cpp:641 ../src/file.cpp:650 -#: ../src/file.cpp:657 ../src/file.cpp:663 +#: ../src/file.cpp:632 ../src/file.cpp:642 ../src/file.cpp:651 +#: ../src/file.cpp:658 ../src/file.cpp:664 msgid "Document not saved." msgstr "" -#: ../src/file.cpp:640 +#: ../src/file.cpp:641 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." msgstr "" -#: ../src/file.cpp:649 +#: ../src/file.cpp:650 #, c-format msgid "File %s could not be saved." msgstr "" -#: ../src/file.cpp:682 ../src/file.cpp:684 +#: ../src/file.cpp:683 ../src/file.cpp:685 msgid "Document saved." msgstr "" #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:827 ../src/file.cpp:1506 +#: ../src/file.cpp:743 ../src/file.cpp:1422 msgid "drawing" msgstr "" -#: ../src/file.cpp:832 +#: ../src/file.cpp:748 msgid "drawing-%1" msgstr "" -#: ../src/file.cpp:849 +#: ../src/file.cpp:765 msgid "Select file to save a copy to" msgstr "" -#: ../src/file.cpp:851 +#: ../src/file.cpp:767 msgid "Select file to save to" msgstr "" -#: ../src/file.cpp:956 ../src/file.cpp:958 +#: ../src/file.cpp:872 ../src/file.cpp:874 msgid "No changes need to be saved." msgstr "" -#: ../src/file.cpp:977 +#: ../src/file.cpp:893 msgid "Saving document..." msgstr "" -#: ../src/file.cpp:1344 ../src/ui/dialog/inkscape-preferences.cpp:1485 +#: ../src/file.cpp:1260 ../src/ui/dialog/inkscape-preferences.cpp:1542 #: ../src/ui/dialog/ocaldialogs.cpp:1091 msgid "Import" msgstr "" -#: ../src/file.cpp:1394 +#: ../src/file.cpp:1310 msgid "Select file to import" msgstr "" -#: ../src/file.cpp:1527 +#: ../src/file.cpp:1443 msgid "Select file to export to" msgstr "" -#: ../src/file.cpp:1780 +#: ../src/file.cpp:1696 msgid "Import Clip Art" msgstr "" @@ -8533,7 +8539,8 @@ msgstr "" #: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:85 #: ../src/ui/widget/color-icc-selector.cpp:160 #: ../src/ui/widget/color-icc-selector.cpp:164 -#: ../src/ui/widget/color-scales.cpp:382 ../src/ui/widget/color-scales.cpp:383 +#: ../src/ui/widget/color-scales.cpp:394 ../src/ui/widget/color-scales.cpp:395 +#: ../src/ui/widget/color-scales.cpp:430 ../src/ui/widget/color-scales.cpp:431 #: ../src/widgets/tweak-toolbar.cpp:286 msgid "Hue" msgstr "" @@ -8573,7 +8580,7 @@ msgstr "" msgid "Copy" msgstr "" -#: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1560 +#: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1543 msgid "Destination" msgstr "" @@ -8602,7 +8609,7 @@ msgid "Arithmetic" msgstr "" #: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:544 -#: ../src/ui/dialog/objects.cpp:1919 +#: ../src/ui/dialog/objects.cpp:1923 msgid "Duplicate" msgstr "" @@ -8639,15 +8646,15 @@ msgstr "" msgid "Spot Light" msgstr "" -#: ../src/gradient-chemistry.cpp:1613 +#: ../src/gradient-chemistry.cpp:1606 msgid "Invert gradient colors" msgstr "" -#: ../src/gradient-chemistry.cpp:1640 +#: ../src/gradient-chemistry.cpp:1633 msgid "Reverse gradient" msgstr "" -#: ../src/gradient-chemistry.cpp:1654 ../src/widgets/gradient-selector.cpp:207 +#: ../src/gradient-chemistry.cpp:1647 ../src/widgets/gradient-selector.cpp:207 msgid "Delete swatch" msgstr "" @@ -8718,7 +8725,7 @@ msgstr "" msgid "Move gradient handle" msgstr "" -#: ../src/gradient-drag.cpp:1182 ../src/widgets/gradient-vector.cpp:798 +#: ../src/gradient-drag.cpp:1182 ../src/widgets/gradient-vector.cpp:777 msgid "Delete gradient stop" msgstr "" @@ -8771,52 +8778,52 @@ msgstr "" msgid "Move gradient mid stop(s)" msgstr "" -#: ../src/gradient-drag.cpp:3104 +#: ../src/gradient-drag.cpp:3102 msgid "Delete gradient stop(s)" msgstr "" -#: ../src/inkscape.cpp:224 +#: ../src/inkscape.cpp:226 msgid "Autosave failed! Cannot open directory %1." msgstr "" -#: ../src/inkscape.cpp:240 +#: ../src/inkscape.cpp:242 msgid "Autosaving documents..." msgstr "" -#: ../src/inkscape.cpp:308 +#: ../src/inkscape.cpp:310 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" -#: ../src/inkscape.cpp:311 ../src/inkscape.cpp:318 +#: ../src/inkscape.cpp:313 ../src/inkscape.cpp:320 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "" -#: ../src/inkscape.cpp:333 +#: ../src/inkscape.cpp:335 msgid "Autosave complete." msgstr "" -#: ../src/inkscape.cpp:647 +#: ../src/inkscape.cpp:667 ../src/ui/dialog/symbols.cpp:627 msgid "Untitled document" msgstr "" #. Show nice dialog box -#: ../src/inkscape.cpp:679 +#: ../src/inkscape.cpp:697 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "" -#: ../src/inkscape.cpp:680 +#: ../src/inkscape.cpp:698 msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" msgstr "" -#: ../src/inkscape.cpp:681 +#: ../src/inkscape.cpp:699 msgid "Automatic backup of the following documents failed:\n" msgstr "" -#. wether to launch in fullscreen mode -#. wether to search folders for SVG files recursively +#. whether to launch in fullscreen mode +#. whether to search folders for SVG files recursively #. time (in seconds) after which the next image of the slideshow is automatically loaded #. scale factor for images #. (currently only applied to the first image - others are resized to window dimensions) @@ -8884,286 +8891,311 @@ msgstr "" msgid "Node or handle drag canceled." msgstr "" -#: ../src/knotholder.cpp:180 +#: ../src/knotholder.cpp:187 msgid "Change handle" msgstr "" -#: ../src/knotholder.cpp:317 +#: ../src/knotholder.cpp:324 msgid "Move handle" msgstr "" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:336 ../src/knotholder.cpp:358 +#: ../src/knotholder.cpp:343 ../src/knotholder.cpp:365 msgid "Move the pattern fill inside the object" msgstr "" -#: ../src/knotholder.cpp:340 ../src/knotholder.cpp:362 +#: ../src/knotholder.cpp:347 ../src/knotholder.cpp:369 msgid "Scale the pattern fill; uniformly if with Ctrl" msgstr "" -#: ../src/knotholder.cpp:344 ../src/knotholder.cpp:366 +#: ../src/knotholder.cpp:351 ../src/knotholder.cpp:373 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "" -#: ../src/libnrtype/FontFactory.cpp:652 +#: ../src/libnrtype/FontFactory.cpp:797 msgid "Ignoring font without family that will crash Pango" msgstr "" #. {constant defined in effect-enum.h, N_("name of your effect"), "name of your effect in SVG"} #. 0.46 -#: ../src/live_effects/effect.cpp:90 +#: ../src/live_effects/effect.cpp:93 msgid "Bend" msgstr "" -#: ../src/live_effects/effect.cpp:91 +#: ../src/live_effects/effect.cpp:94 msgid "Gears" msgstr "" -#: ../src/live_effects/effect.cpp:92 +#: ../src/live_effects/effect.cpp:95 msgid "Pattern Along Path" msgstr "" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:93 +#: ../src/live_effects/effect.cpp:96 msgid "Stitch Sub-Paths" msgstr "" #. 0.47 -#: ../src/live_effects/effect.cpp:95 +#: ../src/live_effects/effect.cpp:98 msgid "VonKoch" msgstr "" -#: ../src/live_effects/effect.cpp:96 +#: ../src/live_effects/effect.cpp:99 msgid "Knot" msgstr "" -#: ../src/live_effects/effect.cpp:97 +#: ../src/live_effects/effect.cpp:100 msgid "Construct grid" msgstr "" -#: ../src/live_effects/effect.cpp:98 +#: ../src/live_effects/effect.cpp:101 msgid "Spiro spline" msgstr "" -#: ../src/live_effects/effect.cpp:99 +#: ../src/live_effects/effect.cpp:102 msgid "Envelope Deformation" msgstr "" -#: ../src/live_effects/effect.cpp:100 +#: ../src/live_effects/effect.cpp:103 msgid "Interpolate Sub-Paths" msgstr "" -#: ../src/live_effects/effect.cpp:101 +#: ../src/live_effects/effect.cpp:104 msgid "Hatches (rough)" msgstr "" -#: ../src/live_effects/effect.cpp:102 +#: ../src/live_effects/effect.cpp:105 msgid "Sketch" msgstr "" -#: ../src/live_effects/effect.cpp:103 +#: ../src/live_effects/effect.cpp:106 msgid "Ruler" msgstr "" #. 0.91 -#: ../src/live_effects/effect.cpp:105 +#: ../src/live_effects/effect.cpp:108 msgid "Power stroke" msgstr "" -#: ../src/live_effects/effect.cpp:106 +#: ../src/live_effects/effect.cpp:109 ../src/selection-chemistry.cpp:2933 msgid "Clone original" msgstr "" -#: ../src/live_effects/effect.cpp:109 +#: ../src/live_effects/effect.cpp:112 msgid "Lattice Deformation 2" msgstr "" -#: ../src/live_effects/effect.cpp:110 +#: ../src/live_effects/effect.cpp:113 msgid "Perspective/Envelope" msgstr "" #. TODO:Wrong name with "-" -#: ../src/live_effects/effect.cpp:111 +#: ../src/live_effects/effect.cpp:114 msgid "Interpolate points" msgstr "" -#: ../src/live_effects/effect.cpp:112 +#: ../src/live_effects/effect.cpp:115 msgid "Transform by 2 points" msgstr "" -#: ../src/live_effects/effect.cpp:113 -#: ../src/live_effects/lpe-show_handles.cpp:27 +#: ../src/live_effects/effect.cpp:116 +#: ../src/live_effects/lpe-show_handles.cpp:28 #: ../src/widgets/mesh-toolbar.cpp:505 msgid "Show handles" msgstr "" -#: ../src/live_effects/effect.cpp:115 ../src/widgets/pencil-toolbar.cpp:115 +#: ../src/live_effects/effect.cpp:118 ../src/widgets/pencil-toolbar.cpp:135 msgid "BSpline" msgstr "" -#: ../src/live_effects/effect.cpp:116 +#: ../src/live_effects/effect.cpp:119 msgid "Join type" msgstr "" -#: ../src/live_effects/effect.cpp:117 +#: ../src/live_effects/effect.cpp:120 msgid "Taper stroke" msgstr "" -#: ../src/live_effects/effect.cpp:118 +#: ../src/live_effects/effect.cpp:121 msgid "Mirror symmetry" msgstr "" -#: ../src/live_effects/effect.cpp:119 +#: ../src/live_effects/effect.cpp:122 msgid "Rotate copies" msgstr "" #. Ponyscape -> Inkscape 0.92 -#: ../src/live_effects/effect.cpp:121 +#: ../src/live_effects/effect.cpp:124 msgid "Attach path" msgstr "" -#: ../src/live_effects/effect.cpp:122 +#: ../src/live_effects/effect.cpp:125 msgid "Fill between strokes" msgstr "" -#: ../src/live_effects/effect.cpp:123 ../src/selection-chemistry.cpp:2963 +#: ../src/live_effects/effect.cpp:126 ../src/selection-chemistry.cpp:2931 msgid "Fill between many" msgstr "" -#: ../src/live_effects/effect.cpp:124 +#: ../src/live_effects/effect.cpp:127 msgid "Ellipse by 5 points" msgstr "" -#: ../src/live_effects/effect.cpp:125 +#: ../src/live_effects/effect.cpp:128 msgid "Bounding Box" msgstr "" #. 9.93 -#: ../src/live_effects/effect.cpp:127 -msgid "Measure Line" +#: ../src/live_effects/effect.cpp:130 +msgid "Measure Segments" msgstr "" -#: ../src/live_effects/effect.cpp:128 +#: ../src/live_effects/effect.cpp:131 msgid "Fillet/Chamfer" msgstr "" -#: ../src/live_effects/effect.cpp:129 +#: ../src/live_effects/effect.cpp:132 msgid "Boolean operation" msgstr "" -#: ../src/live_effects/effect.cpp:130 +#: ../src/live_effects/effect.cpp:133 msgid "Embrodery stitch" msgstr "" -#: ../src/live_effects/effect.cpp:132 +#: ../src/live_effects/effect.cpp:134 +msgid "Power clip" +msgstr "" + +#: ../src/live_effects/effect.cpp:135 +msgid "Power mask" +msgstr "" + +#: ../src/live_effects/effect.cpp:137 msgid "doEffect stack test" msgstr "" -#: ../src/live_effects/effect.cpp:133 +#: ../src/live_effects/effect.cpp:138 msgid "Angle bisector" msgstr "" -#: ../src/live_effects/effect.cpp:134 +#: ../src/live_effects/effect.cpp:139 msgid "Circle (by center and radius)" msgstr "" -#: ../src/live_effects/effect.cpp:135 +#: ../src/live_effects/effect.cpp:140 msgid "Circle by 3 points" msgstr "" -#: ../src/live_effects/effect.cpp:136 +#: ../src/live_effects/effect.cpp:141 msgid "Dynamic stroke" msgstr "" -#: ../src/live_effects/effect.cpp:137 ../share/extensions/extrude.inx.h:1 +#: ../src/live_effects/effect.cpp:142 ../share/extensions/extrude.inx.h:1 msgid "Extrude" msgstr "" -#: ../src/live_effects/effect.cpp:138 +#: ../src/live_effects/effect.cpp:143 msgid "Lattice Deformation" msgstr "" -#: ../src/live_effects/effect.cpp:139 +#: ../src/live_effects/effect.cpp:144 msgid "Line Segment" msgstr "" -#: ../src/live_effects/effect.cpp:141 -#: ../src/live_effects/lpe-measure-line.cpp:46 +#: ../src/live_effects/effect.cpp:146 +#: ../src/live_effects/lpe-measure-segments.cpp:51 msgid "Parallel" msgstr "" -#: ../src/live_effects/effect.cpp:142 +#: ../src/live_effects/effect.cpp:147 msgid "Path length" msgstr "" -#: ../src/live_effects/effect.cpp:143 +#: ../src/live_effects/effect.cpp:148 msgid "Perpendicular bisector" msgstr "" -#: ../src/live_effects/effect.cpp:144 +#: ../src/live_effects/effect.cpp:149 msgid "Perspective path" msgstr "" -#: ../src/live_effects/effect.cpp:145 +#: ../src/live_effects/effect.cpp:150 msgid "Recursive skeleton" msgstr "" -#: ../src/live_effects/effect.cpp:146 +#: ../src/live_effects/effect.cpp:151 msgid "Tangent to curve" msgstr "" -#: ../src/live_effects/effect.cpp:147 +#: ../src/live_effects/effect.cpp:152 msgid "Text label" msgstr "" -#: ../src/live_effects/effect.cpp:366 +#: ../src/live_effects/effect.cpp:377 msgid "Is visible?" msgstr "" -#: ../src/live_effects/effect.cpp:366 +#: ../src/live_effects/effect.cpp:377 msgid "" "If unchecked, the effect remains applied to the object but is temporarily " "disabled on canvas" msgstr "" -#: ../src/live_effects/effect.cpp:395 +#: ../src/live_effects/effect.cpp:406 msgid "No effect" msgstr "" -#: ../src/live_effects/effect.cpp:583 +#: ../src/live_effects/effect.cpp:594 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" -#: ../src/live_effects/effect.cpp:819 -msgid ". Change custom values for this parameter" +#: ../src/live_effects/effect.cpp:837 ../src/live_effects/effect.cpp:908 +msgid "Default value: " msgstr "" -#: ../src/live_effects/effect.cpp:828 ../src/live_effects/effect.cpp:870 +#: ../src/live_effects/effect.cpp:838 ../src/live_effects/effect.cpp:895 +msgid "Default value overridden: " +msgstr "" + +#: ../src/live_effects/effect.cpp:840 ../src/live_effects/effect.cpp:891 msgid "Update" msgstr "" -#: ../src/live_effects/effect.cpp:830 ../src/live_effects/effect.cpp:880 +#: ../src/live_effects/effect.cpp:841 ../src/live_effects/effect.cpp:894 +msgid "Default value: " +msgstr "" + +#: ../src/live_effects/effect.cpp:843 ../src/live_effects/effect.cpp:905 #: ../src/ui/dialog/xml-tree.cpp:76 msgid "Set" msgstr "" +#: ../src/live_effects/effect.cpp:844 ../src/live_effects/effect.cpp:909 +msgid "Default value overridden: None\n" +msgstr "" + +#: ../src/live_effects/effect.cpp:846 ../src/live_effects/effect.cpp:896 +#: ../src/live_effects/effect.cpp:910 +msgid "Current parameter value: " +msgstr "" + #. image-rendering -#: ../src/live_effects/effect.cpp:839 +#: ../src/live_effects/effect.cpp:856 #: ../share/extensions/image_attributes.inx.h:19 msgid "Unset" msgstr "" -#: ../src/live_effects/effect.cpp:852 +#: ../src/live_effects/effect.cpp:870 msgid ": Set default parameters" msgstr "" -#: ../src/live_effects/effect.cpp:952 +#: ../src/live_effects/effect.cpp:981 #, c-format msgid "Editing parameter %s." msgstr "" -#: ../src/live_effects/effect.cpp:957 +#: ../src/live_effects/effect.cpp:986 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" @@ -9237,8 +9269,8 @@ msgid "Path along which to bend the original path" msgstr "" #: ../src/live_effects/lpe-bendpath.cpp:56 -#: ../src/live_effects/lpe-patternalongpath.cpp:68 -#: ../src/ui/dialog/export.cpp:257 ../src/ui/dialog/transformation.cpp:67 +#: ../src/live_effects/lpe-patternalongpath.cpp:67 +#: ../src/ui/dialog/export.cpp:253 ../src/ui/dialog/transformation.cpp:67 #: ../src/ui/widget/page-sizer.cpp:220 msgid "_Width:" msgstr "" @@ -9263,8 +9295,13 @@ msgstr "" msgid "Rotates the original 90 degrees, before bending it along the bend path" msgstr "" -#: ../src/live_effects/lpe-bendpath.cpp:163 -#: ../src/live_effects/lpe-patternalongpath.cpp:283 +#: ../src/live_effects/lpe-bendpath.cpp:59 +#: ../src/live_effects/lpe-patternalongpath.cpp:84 +msgid "Hide width knot" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:184 +#: ../src/live_effects/lpe-patternalongpath.cpp:293 msgid "Change the width" msgstr "" @@ -9370,7 +9407,7 @@ msgid "Fill type (winding mode) for operand path" msgstr "" #: ../src/live_effects/lpe-bounding-box.cpp:20 -#: ../src/live_effects/lpe-fill-between-many.cpp:22 +#: ../src/live_effects/lpe-fill-between-many.cpp:33 #: ../src/live_effects/lpe-fill-between-strokes.cpp:20 msgid "Linked path:" msgstr "" @@ -9446,74 +9483,43 @@ msgid "Change to 0 weight" msgstr "" #: ../src/live_effects/lpe-bspline.cpp:160 -#: ../src/live_effects/parameter/parameter.cpp:187 +#: ../src/live_effects/parameter/parameter.cpp:194 msgid "Change scalar parameter" msgstr "" -#: ../src/live_effects/lpe-clone-original.cpp:23 -msgid "Linked Item:" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:23 -msgid "Item from which to take the original data" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:24 -#: ../src/widgets/measure-toolbar.cpp:315 -msgid "Scale %" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:24 -msgid "Scale item %" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:25 -msgid "Preserve position" -msgstr "" - #: ../src/live_effects/lpe-clone-original.cpp:26 -msgid "Inverse clone" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:26 -msgid "Use LPE item as origin" +msgid "No shape" msgstr "" #: ../src/live_effects/lpe-clone-original.cpp:27 -msgid "Clone shape -d-" +#: ../src/live_effects/lpe-fill-between-many.cpp:25 +msgid "Without LPE's" msgstr "" #: ../src/live_effects/lpe-clone-original.cpp:28 -msgid "Clone transforms" +#: ../src/live_effects/lpe-fill-between-many.cpp:26 +msgid "With Spiro or BSpline" msgstr "" #: ../src/live_effects/lpe-clone-original.cpp:29 -msgid "Clone fill" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:30 -msgid "Clone stroke" -msgstr "" - -#: ../src/live_effects/lpe-clone-original.cpp:31 -msgid "Clone paint order" +#: ../src/live_effects/lpe-fill-between-many.cpp:27 +msgid "With LPE's" msgstr "" -#: ../src/live_effects/lpe-clone-original.cpp:32 -msgid "Clone opacity" +#: ../src/live_effects/lpe-clone-original.cpp:35 +msgid "Linked Item:" msgstr "" -#: ../src/live_effects/lpe-clone-original.cpp:33 -msgid "Clone filter" +#: ../src/live_effects/lpe-clone-original.cpp:35 +msgid "Item from which to take the original data" msgstr "" -#: ../src/live_effects/lpe-clone-original.cpp:322 -#: ../src/live_effects/lpe-clone-original.cpp:337 -msgid "Show attributes override" +#: ../src/live_effects/lpe-clone-original.cpp:36 +msgid "Shape linked" msgstr "" -#: ../src/live_effects/lpe-clone-original.cpp:335 -msgid "Hide attributes override" +#: ../src/live_effects/lpe-clone-original.cpp:39 +msgid "Alow transforms" msgstr "" #: ../src/live_effects/lpe-constructgrid.cpp:24 @@ -9882,32 +9888,40 @@ msgstr "" msgid "Defines the direction and magnitude of the extrusion" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:22 +#: ../src/live_effects/lpe-fill-between-many.cpp:33 msgid "Paths from which to take the original path data" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:23 +#: ../src/live_effects/lpe-fill-between-many.cpp:34 +msgid "LPE's on linked:" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-many.cpp:34 +msgid "LPE's on linked" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-many.cpp:35 #: ../src/live_effects/lpe-fill-between-strokes.cpp:23 msgid "Fuse coincident points" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:24 +#: ../src/live_effects/lpe-fill-between-many.cpp:36 #: ../src/live_effects/lpe-fill-between-strokes.cpp:24 msgid "Allow transforms" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:25 +#: ../src/live_effects/lpe-fill-between-many.cpp:37 #: ../src/live_effects/lpe-fill-between-strokes.cpp:25 msgid "Join subpaths" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:26 +#: ../src/live_effects/lpe-fill-between-many.cpp:38 #: ../src/live_effects/lpe-fill-between-strokes.cpp:26 #: ../src/ui/dialog/ocaldialogs.cpp:1090 msgid "Close" msgstr "" -#: ../src/live_effects/lpe-fill-between-many.cpp:26 +#: ../src/live_effects/lpe-fill-between-many.cpp:38 #: ../src/live_effects/lpe-fill-between-strokes.cpp:26 msgid "Close path" msgstr "" @@ -9929,7 +9943,7 @@ msgid "Reverses the second path order" msgstr "" #: ../src/live_effects/lpe-fillet-chamfer.cpp:27 -#: ../src/widgets/text-toolbar.cpp:1905 +#: ../src/widgets/text-toolbar.cpp:2207 #: ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "" @@ -9943,8 +9957,8 @@ msgid "Force bezier" msgstr "" #: ../src/live_effects/lpe-fillet-chamfer.cpp:35 -#: ../src/live_effects/lpe-measure-line.cpp:52 -#: ../src/live_effects/lpe-ruler.cpp:39 ../src/widgets/gimp/ruler.cpp:194 +#: ../src/live_effects/lpe-measure-segments.cpp:57 +#: ../src/live_effects/lpe-ruler.cpp:39 ../src/widgets/gimp/ruler.cpp:197 msgid "Unit" msgstr "" @@ -10005,22 +10019,22 @@ msgstr "" msgid "Helper path size with direction to node" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:228 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:226 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:63 msgid "Fillet" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:233 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:231 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:65 msgid "Inverse fillet" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:239 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:237 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:67 msgid "Chamfer" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:244 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:242 #: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 msgid "Inverse chamfer" msgstr "" @@ -10183,20 +10197,20 @@ msgstr "" #. TRANSLATORS: The line join style specifies the shape to be used at the #. corners of paths. It can be "miter", "round" or "bevel". #: ../src/live_effects/lpe-jointype.cpp:54 -#: ../src/live_effects/lpe-powerstroke.cpp:171 +#: ../src/live_effects/lpe-powerstroke.cpp:172 #: ../src/widgets/stroke-style.cpp:262 msgid "Join:" msgstr "" #: ../src/live_effects/lpe-jointype.cpp:54 -#: ../src/live_effects/lpe-powerstroke.cpp:171 +#: ../src/live_effects/lpe-powerstroke.cpp:172 msgid "Determines the shape of the path's corners" msgstr "" #. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), #. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:57 -#: ../src/live_effects/lpe-powerstroke.cpp:172 +#: ../src/live_effects/lpe-powerstroke.cpp:173 #: ../src/live_effects/lpe-taperstroke.cpp:72 msgid "Miter limit:" msgstr "" @@ -10262,12 +10276,12 @@ msgstr "" msgid "Crossings signs" msgstr "" -#: ../src/live_effects/lpe-knot.cpp:622 +#: ../src/live_effects/lpe-knot.cpp:618 msgid "Drag to select a crossing, click to flip it" msgstr "" #. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:660 +#: ../src/live_effects/lpe-knot.cpp:656 msgid "Change knot crossing" msgstr "" @@ -10508,169 +10522,160 @@ msgstr "" msgid "Hide Points" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:44 -#: ../src/widgets/text-toolbar.cpp:1862 +#: ../src/live_effects/lpe-measure-segments.cpp:49 +#: ../src/widgets/text-toolbar.cpp:2164 msgid "Horizontal" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:45 +#: ../src/live_effects/lpe-measure-segments.cpp:50 msgid "Vertical" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:53 -msgid "Font" -msgstr "" - -#: ../src/live_effects/lpe-measure-line.cpp:53 -msgid "Font Selector" -msgstr "" - -#: ../src/live_effects/lpe-measure-line.cpp:54 -#: ../src/widgets/gimp/ruler.cpp:184 +#: ../src/live_effects/lpe-measure-segments.cpp:58 +#: ../src/widgets/gimp/ruler.cpp:187 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:54 +#: ../src/live_effects/lpe-measure-segments.cpp:58 msgid "Orientation method" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:55 -msgid "Curve on origin" +#: ../src/live_effects/lpe-measure-segments.cpp:59 +msgid "Color and opacity" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:55 -msgid "Curve on origin, set 0 to start/end" +#: ../src/live_effects/lpe-measure-segments.cpp:59 +msgid "Set color and opacity of the measurements" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:57 -#: ../src/widgets/gimp/ruler.cpp:222 -msgid "Position" -msgstr "" - -#: ../src/live_effects/lpe-measure-line.cpp:58 -msgid "Text top/bottom" +#: ../src/live_effects/lpe-measure-segments.cpp:60 +msgid "Font" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:59 -msgid "Text right/left" +#: ../src/live_effects/lpe-measure-segments.cpp:60 +msgid "Font Selector" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:60 -msgid "Helpline distance" +#: ../src/live_effects/lpe-measure-segments.cpp:62 +msgid "Fix overlaps °" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:61 -msgid "Helpline overlap" +#: ../src/live_effects/lpe-measure-segments.cpp:62 +msgid "Min angle where overlaps are fixed, 180° no fix" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:62 -#: ../src/selection-chemistry.cpp:2262 ../src/seltrans.cpp:475 -#: ../src/ui/dialog/transformation.cpp:758 ../src/ui/widget/page-sizer.cpp:406 -#: ../share/extensions/interp_att_g.inx.h:14 -msgid "Scale" +#: ../src/live_effects/lpe-measure-segments.cpp:63 +#: ../src/widgets/gimp/ruler.cpp:225 +msgid "Position" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:62 -msgid "Scaling factor" +#: ../src/live_effects/lpe-measure-segments.cpp:64 +msgid "Text top/bottom" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:63 -msgid "Format" +#: ../src/live_effects/lpe-measure-segments.cpp:65 +msgid "Helpline distance" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:63 -msgid "Format the number ex:{measure} {unit}, return to save" +#: ../src/live_effects/lpe-measure-segments.cpp:66 +msgid "Helpline overlap" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:65 -msgid "Arrows outside" +#: ../src/live_effects/lpe-measure-segments.cpp:67 +msgid "Line width. DIM line group standard are 0.25 or 0.35" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:66 -msgid "Flip side" +#: ../src/live_effects/lpe-measure-segments.cpp:68 +#: ../src/selection-chemistry.cpp:2256 ../src/seltrans.cpp:475 +#: ../src/ui/dialog/transformation.cpp:758 ../src/ui/widget/page-sizer.cpp:420 +#: ../share/extensions/interp_att_g.inx.h:16 +msgid "Scale" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:67 -msgid "Scale sensitive" +#: ../src/live_effects/lpe-measure-segments.cpp:68 +msgid "Scaling factor" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:67 -msgid "Costrained scale sensitive to transformed containers" +#: ../src/live_effects/lpe-measure-segments.cpp:70 +msgid "Format" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:68 -msgid "Local Number Format" +#: ../src/live_effects/lpe-measure-segments.cpp:70 +msgid "Format the number ex:{measure} {unit}, return to save" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:68 -msgid "Local number format" +#: ../src/live_effects/lpe-measure-segments.cpp:71 +msgid "Blacklist" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:69 -msgid "Line Group 0.5" +#: ../src/live_effects/lpe-measure-segments.cpp:71 +msgid "" +"Optional segment index that exclude measure, comma limited, you can add more " +"LPE like this to fill the holes" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:69 -msgid "Line Group 0.5, from 0.7" +#: ../src/live_effects/lpe-measure-segments.cpp:72 +msgid "Inverse blacklist" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:70 -msgid "Rotate Anotation" +#: ../src/live_effects/lpe-measure-segments.cpp:72 +msgid "Blacklist as whitelist" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:71 -msgid "Hide if label over" +#: ../src/live_effects/lpe-measure-segments.cpp:73 +msgid "Arrows outside" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:71 -msgid "Hide DIN line if label over" +#: ../src/live_effects/lpe-measure-segments.cpp:74 +msgid "Flip side" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:72 -msgid "CSS DIN line" +#: ../src/live_effects/lpe-measure-segments.cpp:75 +msgid "Scale sensitive" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:72 -msgid "Override CSS to DIN line, return to save, empty to reset to DIM" +#: ../src/live_effects/lpe-measure-segments.cpp:75 +msgid "Costrained scale sensitive to transformed containers" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:73 -msgid "CSS helpers" +#: ../src/live_effects/lpe-measure-segments.cpp:76 +msgid "Local Number Format" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:73 -msgid "Override CSS to helper lines, return to save, empty to reset to DIM" +#: ../src/live_effects/lpe-measure-segments.cpp:76 +msgid "Local number format" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:74 -msgid "CSS anotation" +#: ../src/live_effects/lpe-measure-segments.cpp:77 +msgid "Rotate Anotation" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:74 -msgid "Override CSS to anotation text, return to save, empty to reset to DIM" +#: ../src/live_effects/lpe-measure-segments.cpp:78 +msgid "Hide if label over" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:75 -msgid "CSS arrows" +#: ../src/live_effects/lpe-measure-segments.cpp:78 +msgid "Hide DIN line if label over" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:75 -msgid "Override CSS to arrows, return to save, empty to reset DIM" +#: ../src/live_effects/lpe-measure-segments.cpp:79 +msgid "Info Box" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:332 -msgid "Non Uniform Scale" +#: ../src/live_effects/lpe-measure-segments.cpp:79 +msgid "Important messages" msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:726 -#: ../src/live_effects/lpe-measure-line.cpp:741 -msgid "Show DIM CSS style override" +#: ../src/live_effects/lpe-measure-segments.cpp:79 +msgid "" +"Use \"Style Dialog\" to more styling. Each meassure element has extra " +"selectors. Use !important to override defaults..." msgstr "" -#: ../src/live_effects/lpe-measure-line.cpp:739 -msgid "Hide DIM CSS style override" +#: ../src/live_effects/lpe-measure-segments.cpp:324 +msgid "Non Uniform Scale" msgstr "" #: ../src/live_effects/lpe-mirror_symmetry.cpp:42 @@ -10750,88 +10755,88 @@ msgstr "" msgid "Adjust center of mirroring" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:57 +#: ../src/live_effects/lpe-patternalongpath.cpp:56 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:58 +#: ../src/live_effects/lpe-patternalongpath.cpp:57 #: ../share/extensions/pathalongpath.inx.h:11 msgid "Single, stretched" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:59 +#: ../src/live_effects/lpe-patternalongpath.cpp:58 #: ../share/extensions/pathalongpath.inx.h:12 msgid "Repeated" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:60 +#: ../src/live_effects/lpe-patternalongpath.cpp:59 #: ../share/extensions/pathalongpath.inx.h:13 msgid "Repeated, stretched" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:66 +#: ../src/live_effects/lpe-patternalongpath.cpp:65 msgid "Pattern source:" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:66 +#: ../src/live_effects/lpe-patternalongpath.cpp:65 msgid "Path to put along the skeleton path" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:68 +#: ../src/live_effects/lpe-patternalongpath.cpp:67 msgid "Width of the pattern" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:69 +#: ../src/live_effects/lpe-patternalongpath.cpp:68 msgid "Pattern copies:" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:69 +#: ../src/live_effects/lpe-patternalongpath.cpp:68 msgid "How many pattern copies to place along the skeleton path" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:71 +#: ../src/live_effects/lpe-patternalongpath.cpp:70 msgid "Wid_th in units of length" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:72 +#: ../src/live_effects/lpe-patternalongpath.cpp:71 msgid "Scale the width of the pattern in units of its length" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:74 +#: ../src/live_effects/lpe-patternalongpath.cpp:73 msgid "Spa_cing:" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:76 +#: ../src/live_effects/lpe-patternalongpath.cpp:75 #, no-c-format msgid "" "Space between copies of the pattern. Negative values allowed, but are " "limited to -90% of pattern width." msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:78 +#: ../src/live_effects/lpe-patternalongpath.cpp:77 msgid "No_rmal offset:" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:79 +#: ../src/live_effects/lpe-patternalongpath.cpp:78 msgid "Tan_gential offset:" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:80 +#: ../src/live_effects/lpe-patternalongpath.cpp:79 msgid "Offsets in _unit of pattern size" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:81 +#: ../src/live_effects/lpe-patternalongpath.cpp:80 msgid "" "Spacing, tangential and normal offset are expressed as a ratio of width/" "height" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:83 +#: ../src/live_effects/lpe-patternalongpath.cpp:82 msgid "Pattern is _vertical" msgstr "" -#: ../src/live_effects/lpe-patternalongpath.cpp:83 +#: ../src/live_effects/lpe-patternalongpath.cpp:82 msgid "Rotate pattern 90 deg before applying" msgstr "" @@ -10920,7 +10925,7 @@ msgid "Zero width" msgstr "" #: ../src/live_effects/lpe-powerstroke.cpp:160 -#: ../src/widgets/pencil-toolbar.cpp:109 +#: ../src/widgets/pencil-toolbar.cpp:129 msgid "Spiro" msgstr "" @@ -10948,26 +10953,75 @@ msgid "" msgstr "" #: ../src/live_effects/lpe-powerstroke.cpp:170 -msgid "Start cap:" +msgid "Width scale:" msgstr "" #: ../src/live_effects/lpe-powerstroke.cpp:170 +msgid "Width scale all points" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:171 +msgid "Start cap:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:171 msgid "Determines the shape of the path's start" msgstr "" -#: ../src/live_effects/lpe-powerstroke.cpp:172 +#: ../src/live_effects/lpe-powerstroke.cpp:173 #: ../src/widgets/stroke-style.cpp:302 msgid "Maximum length of the miter (in units of stroke width)" msgstr "" -#: ../src/live_effects/lpe-powerstroke.cpp:173 +#: ../src/live_effects/lpe-powerstroke.cpp:174 msgid "End cap:" msgstr "" -#: ../src/live_effects/lpe-powerstroke.cpp:173 +#: ../src/live_effects/lpe-powerstroke.cpp:174 msgid "Determines the shape of the path's end" msgstr "" +#: ../src/live_effects/lpe-powerclip.cpp:27 +msgid "Hide clip" +msgstr "" + +#: ../src/live_effects/lpe-powerclip.cpp:30 +msgid "Inverse clip" +msgstr "" + +#: ../src/live_effects/lpe-powerclip.cpp:31 +msgid "Flatten clip" +msgstr "" + +#: ../src/live_effects/lpe-powerclip.cpp:31 +msgid "Flatten clip, see fill rule once convert to paths" +msgstr "" + +#: ../src/live_effects/lpe-powerclip.cpp:278 +msgid "Convert clips to paths, undoable" +msgstr "" + +#: ../src/live_effects/lpe-powermask.cpp:31 +msgid "Invert mask" +msgstr "" + +#. wrap(_("Wrap mask data"), _("Wrap mask data allowing previous filters"), "wrap", &wr, this, false), +#: ../src/live_effects/lpe-powermask.cpp:33 +msgid "Hide mask" +msgstr "" + +#: ../src/live_effects/lpe-powermask.cpp:34 +msgid "Add background to mask" +msgstr "" + +#: ../src/live_effects/lpe-powermask.cpp:35 +msgid "Background color and opacity" +msgstr "" + +#: ../src/live_effects/lpe-powermask.cpp:35 +msgid "Set color and opacity of the background" +msgstr "" + #: ../src/live_effects/lpe-rough-hatches.cpp:218 msgid "Frequency randomness:" msgstr "" @@ -11259,13 +11313,13 @@ msgstr "" #: ../src/live_effects/lpe-ruler.cpp:30 #: ../src/live_effects/lpe-transform_2pts.cpp:35 -#: ../src/ui/tools/measure-tool.cpp:749 ../src/widgets/arc-toolbar.cpp:334 +#: ../src/ui/tools/measure-tool.cpp:755 ../src/widgets/arc-toolbar.cpp:486 msgid "Start" msgstr "" #: ../src/live_effects/lpe-ruler.cpp:31 #: ../src/live_effects/lpe-transform_2pts.cpp:36 -#: ../src/ui/tools/measure-tool.cpp:750 ../src/widgets/arc-toolbar.cpp:347 +#: ../src/ui/tools/measure-tool.cpp:756 ../src/widgets/arc-toolbar.cpp:499 msgid "End" msgstr "" @@ -11278,7 +11332,7 @@ msgid "Distance between successive ruler marks" msgstr "" #: ../src/live_effects/lpe-ruler.cpp:39 ../share/extensions/foldablebox.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:9 +#: ../share/extensions/interp_att_g.inx.h:11 #: ../share/extensions/layout_nup.inx.h:3 #: ../share/extensions/printing_marks.inx.h:11 msgid "Unit:" @@ -11340,23 +11394,27 @@ msgstr "" msgid "Choose whether to draw marks at the beginning and end of the path" msgstr "" -#: ../src/live_effects/lpe-show_handles.cpp:26 +#: ../src/live_effects/lpe-show_handles.cpp:27 msgid "Show nodes" msgstr "" -#: ../src/live_effects/lpe-show_handles.cpp:28 +#: ../src/live_effects/lpe-show_handles.cpp:29 msgid "Show path" msgstr "" -#: ../src/live_effects/lpe-show_handles.cpp:29 +#: ../src/live_effects/lpe-show_handles.cpp:30 msgid "Show center of node" msgstr "" -#: ../src/live_effects/lpe-show_handles.cpp:30 +#: ../src/live_effects/lpe-show_handles.cpp:31 +msgid "Show original" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:32 msgid "Scale nodes and handles" msgstr "" -#: ../src/live_effects/lpe-show_handles.cpp:53 +#: ../src/live_effects/lpe-show_handles.cpp:56 msgid "" "The \"show handles\" path effect will remove any custom style on the object " "you are applying it to. If this is not what you want, click Cancel." @@ -11483,7 +11541,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "" #: ../src/live_effects/lpe-sketch.cpp:51 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2784 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2785 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "" @@ -11656,11 +11714,11 @@ msgid "Change index of knot" msgstr "" #: ../src/live_effects/lpe-transform_2pts.cpp:356 -#: ../src/ui/dialog/inkscape-preferences.cpp:1591 +#: ../src/ui/dialog/inkscape-preferences.cpp:1648 #: ../src/ui/dialog/pixelartdialog.cpp:289 #: ../src/ui/dialog/svg-fonts-dialog.cpp:793 #: ../src/ui/dialog/tracedialog.cpp:811 -#: ../src/ui/widget/preferences-widget.cpp:655 +#: ../src/ui/widget/preferences-widget.cpp:657 msgid "Reset" msgstr "" @@ -11718,117 +11776,164 @@ msgstr "" msgid "Disable effect if the output is too complex" msgstr "" -#: ../src/live_effects/parameter/bool.cpp:79 +#: ../src/live_effects/parameter/bool.cpp:86 msgid "Change bool parameter" msgstr "" +#: ../src/live_effects/parameter/colorpicker.cpp:125 +msgid "Change color button parameter" +msgstr "" + #: ../src/live_effects/parameter/enum.h:49 msgid "Change enumeration parameter" msgstr "" -#: ../src/live_effects/parameter/fontbutton.cpp:70 +#: ../src/live_effects/parameter/fontbutton.cpp:78 msgid "Change font button parameter" msgstr "" -#: ../src/live_effects/parameter/item.cpp:123 +#: ../src/live_effects/parameter/item.cpp:133 msgid "Link to item on clipboard" msgstr "" -#: ../src/live_effects/parameter/item.cpp:236 +#: ../src/live_effects/parameter/item.cpp:255 msgid "Link item parameter to path" msgstr "" +#: ../src/live_effects/parameter/originalitemarray.cpp:75 +msgid "Active" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:82 +#: ../src/live_effects/parameter/originalpatharray.cpp:103 +#: ../src/ui/dialog/inkscape-preferences.cpp:1603 +#: ../src/ui/widget/page-sizer.cpp:269 ../src/widgets/gradient-selector.cpp:140 +#: ../src/widgets/sp-xmlview-attr-list.cpp:45 +msgid "Name" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:122 +msgid "Link item parameter to item" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:148 #: ../src/live_effects/parameter/originalitem.cpp:66 msgid "Link to item" msgstr "" +#: ../src/live_effects/parameter/originalitemarray.cpp:161 +msgid "Remove Item" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:174 +#: ../src/live_effects/parameter/originalpatharray.cpp:213 +#: ../src/ui/dialog/objects.cpp:1884 +msgid "Move Down" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:187 +#: ../src/live_effects/parameter/originalpatharray.cpp:226 +#: ../src/ui/dialog/objects.cpp:1892 +msgid "Move Up" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:227 +msgid "Move item up" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:257 +msgid "Move item down" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:275 +msgid "Remove item" +msgstr "" + +#: ../src/live_effects/parameter/originalitemarray.cpp:315 +msgid "Link itemarray parameter to item" +msgstr "" + #: ../src/live_effects/parameter/originalitem.cpp:79 -#: ../src/live_effects/parameter/originalpath.cpp:80 +#: ../src/live_effects/parameter/originalpath.cpp:81 msgid "Select original" msgstr "" -#: ../src/live_effects/parameter/originalpath.cpp:67 -#: ../src/live_effects/parameter/originalpatharray.cpp:155 +#: ../src/live_effects/parameter/originalpath.cpp:68 +#: ../src/live_effects/parameter/originalpatharray.cpp:187 msgid "Link to path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:81 -#: ../src/ui/dialog/inkscape-preferences.cpp:1546 -#: ../src/ui/widget/page-sizer.cpp:268 ../src/widgets/gradient-selector.cpp:140 -#: ../src/widgets/sp-xmlview-attr-list.cpp:45 -msgid "Name" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:89 +#: ../src/live_effects/parameter/originalpatharray.cpp:88 #: ../src/widgets/gradient-toolbar.cpp:1206 msgid "Reverse" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:129 -#: ../src/live_effects/parameter/originalpatharray.cpp:318 -#: ../src/live_effects/parameter/path.cpp:539 -msgid "Link path parameter to path" +#: ../src/live_effects/parameter/originalpatharray.cpp:96 +msgid "Visible" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:168 -msgid "Remove Path" +#: ../src/live_effects/parameter/originalpatharray.cpp:146 +#: ../src/live_effects/parameter/path.cpp:553 +msgid "Link path parameter to path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:181 -#: ../src/ui/dialog/objects.cpp:1880 -msgid "Move Down" +#: ../src/live_effects/parameter/originalpatharray.cpp:161 +msgid "Toggle path parameter to path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:194 -#: ../src/ui/dialog/objects.cpp:1888 -msgid "Move Up" +#: ../src/live_effects/parameter/originalpatharray.cpp:200 +msgid "Remove Path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:234 +#: ../src/live_effects/parameter/originalpatharray.cpp:266 msgid "Move path up" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:264 +#: ../src/live_effects/parameter/originalpatharray.cpp:296 msgid "Move path down" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:282 +#: ../src/live_effects/parameter/originalpatharray.cpp:314 msgid "Remove path" msgstr "" -#: ../src/live_effects/parameter/path.cpp:201 +#: ../src/live_effects/parameter/originalpatharray.cpp:353 +msgid "Link patharray parameter to path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:211 msgid "Edit on-canvas" msgstr "" -#: ../src/live_effects/parameter/path.cpp:214 +#: ../src/live_effects/parameter/path.cpp:224 msgid "Copy path" msgstr "" -#: ../src/live_effects/parameter/path.cpp:227 +#: ../src/live_effects/parameter/path.cpp:237 msgid "Paste path" msgstr "" -#: ../src/live_effects/parameter/path.cpp:239 +#: ../src/live_effects/parameter/path.cpp:249 msgid "Link to path on clipboard" msgstr "" -#: ../src/live_effects/parameter/path.cpp:507 +#: ../src/live_effects/parameter/path.cpp:521 msgid "Paste path parameter" msgstr "" -#: ../src/live_effects/parameter/point.cpp:139 +#: ../src/live_effects/parameter/point.cpp:148 msgid "Change point parameter" msgstr "" -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:239 -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:256 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:243 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:260 msgid "" "Stroke width control point: drag to alter the stroke width. Ctrl" "+click adds a control point, Ctrl+Alt+click deletes it, Shift" "+click launches width dialog." msgstr "" -#: ../src/live_effects/parameter/random.cpp:149 +#: ../src/live_effects/parameter/random.cpp:158 msgid "Change random parameter" msgstr "" @@ -11880,20 +11985,20 @@ msgid "" "dialog, Ctrl+Alt+Click resets" msgstr "" -#: ../src/live_effects/parameter/text.cpp:126 +#: ../src/live_effects/parameter/text.cpp:143 msgid "Change text parameter" msgstr "" -#: ../src/live_effects/parameter/togglebutton.cpp:123 +#: ../src/live_effects/parameter/togglebutton.cpp:130 msgid "Change togglebutton parameter" msgstr "" -#: ../src/live_effects/parameter/transformedpoint.cpp:117 -#: ../src/live_effects/parameter/vector.cpp:117 +#: ../src/live_effects/parameter/transformedpoint.cpp:126 +#: ../src/live_effects/parameter/vector.cpp:126 msgid "Change vector parameter" msgstr "" -#: ../src/live_effects/parameter/unit.cpp:87 +#: ../src/live_effects/parameter/unit.cpp:93 msgid "Change unit parameter" msgstr "" @@ -11907,293 +12012,297 @@ msgstr "" msgid "Unable to find node ID: '%s'\n" msgstr "" -#: ../src/main.cpp:301 +#: ../src/main.cpp:303 msgid "Print the Inkscape version number" msgstr "" -#: ../src/main.cpp:306 +#: ../src/main.cpp:308 msgid "Do not use X server (only process files from console)" msgstr "" -#: ../src/main.cpp:311 +#: ../src/main.cpp:313 msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "" -#: ../src/main.cpp:316 +#: ../src/main.cpp:318 msgid "Open specified document(s) (option string may be excluded)" msgstr "" -#: ../src/main.cpp:317 ../src/main.cpp:327 ../src/main.cpp:332 -#: ../src/main.cpp:404 ../src/main.cpp:408 ../src/main.cpp:413 -#: ../src/main.cpp:418 ../src/main.cpp:429 ../src/main.cpp:445 -#: ../src/main.cpp:450 +#: ../src/main.cpp:319 ../src/main.cpp:329 ../src/main.cpp:334 +#: ../src/main.cpp:406 ../src/main.cpp:410 ../src/main.cpp:415 +#: ../src/main.cpp:420 ../src/main.cpp:431 ../src/main.cpp:447 +#: ../src/main.cpp:452 msgid "FILENAME" msgstr "" -#: ../src/main.cpp:321 +#: ../src/main.cpp:323 msgid "xverbs command" msgstr "" -#: ../src/main.cpp:322 +#: ../src/main.cpp:324 msgid "XVERBS_FILENAME" msgstr "" -#: ../src/main.cpp:326 +#: ../src/main.cpp:328 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" -#: ../src/main.cpp:331 +#: ../src/main.cpp:333 msgid "Export document to a PNG file" msgstr "" -#: ../src/main.cpp:336 +#: ../src/main.cpp:338 msgid "" "Resolution for exporting to bitmap and for rasterization of filters in PS/" "EPS/PDF (default 96)" msgstr "" -#: ../src/main.cpp:337 ../src/ui/widget/rendering-options.cpp:37 +#: ../src/main.cpp:339 ../src/ui/widget/rendering-options.cpp:37 msgid "DPI" msgstr "" -#: ../src/main.cpp:341 +#: ../src/main.cpp:343 msgid "" "Exported area in SVG user units (default is the page; 0,0 is lower-left " "corner)" msgstr "" -#: ../src/main.cpp:342 +#: ../src/main.cpp:344 msgid "x0:y0:x1:y1" msgstr "" -#: ../src/main.cpp:346 +#: ../src/main.cpp:348 msgid "Exported area is the entire drawing (not page)" msgstr "" -#: ../src/main.cpp:351 +#: ../src/main.cpp:353 msgid "Exported area is the entire page" msgstr "" -#: ../src/main.cpp:356 -msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" +#: ../src/main.cpp:358 +msgid "" +"Sets margin around exported area (default 0) in units of page size for SVG " +"and mm for PS/EPS/PDF" msgstr "" -#: ../src/main.cpp:357 ../src/main.cpp:399 +#: ../src/main.cpp:359 ../src/main.cpp:401 msgid "VALUE" msgstr "" -#: ../src/main.cpp:361 +#: ../src/main.cpp:363 msgid "" "Snap the bitmap export area outwards to the nearest integer values (in SVG " "user units)" msgstr "" -#: ../src/main.cpp:366 +#: ../src/main.cpp:368 msgid "The width of exported bitmap in pixels (overrides export-dpi)" msgstr "" -#: ../src/main.cpp:367 +#: ../src/main.cpp:369 msgid "WIDTH" msgstr "" -#: ../src/main.cpp:371 +#: ../src/main.cpp:373 msgid "The height of exported bitmap in pixels (overrides export-dpi)" msgstr "" -#: ../src/main.cpp:372 +#: ../src/main.cpp:374 msgid "HEIGHT" msgstr "" -#: ../src/main.cpp:376 +#: ../src/main.cpp:378 msgid "The ID of the object to export" msgstr "" -#: ../src/main.cpp:377 ../src/main.cpp:494 -#: ../src/ui/dialog/inkscape-preferences.cpp:1549 +#: ../src/main.cpp:379 ../src/main.cpp:496 +#: ../src/ui/dialog/inkscape-preferences.cpp:1606 msgid "ID" msgstr "" #. TRANSLATORS: this means: "Only export the object whose id is given in --export-id". #. See "man inkscape" for details. -#: ../src/main.cpp:383 +#: ../src/main.cpp:385 msgid "" "Export just the object with export-id, hide all others (only with export-id)" msgstr "" -#: ../src/main.cpp:388 +#: ../src/main.cpp:390 msgid "Use stored filename and DPI hints when exporting (only with export-id)" msgstr "" -#: ../src/main.cpp:393 +#: ../src/main.cpp:395 msgid "Background color of exported bitmap (any SVG-supported color string)" msgstr "" -#: ../src/main.cpp:394 +#: ../src/main.cpp:396 msgid "COLOR" msgstr "" -#: ../src/main.cpp:398 +#: ../src/main.cpp:400 msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" msgstr "" -#: ../src/main.cpp:403 +#: ../src/main.cpp:405 msgid "Export document to an inkscape SVG file (similar to save as.)" msgstr "" -#: ../src/main.cpp:407 +#: ../src/main.cpp:409 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" -#: ../src/main.cpp:412 +#: ../src/main.cpp:414 msgid "Export document to a PS file" msgstr "" -#: ../src/main.cpp:417 +#: ../src/main.cpp:419 msgid "Export document to an EPS file" msgstr "" -#: ../src/main.cpp:422 +#: ../src/main.cpp:424 msgid "" "Choose the PostScript Level used to export. Possible choices are 2 and 3 " "(the default)" msgstr "" -#: ../src/main.cpp:424 +#: ../src/main.cpp:426 msgid "PS Level" msgstr "" -#: ../src/main.cpp:428 +#: ../src/main.cpp:430 msgid "Export document to a PDF file" msgstr "" #. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:434 +#: ../src/main.cpp:436 msgid "" "Export PDF to given version. (hint: make sure to input a version found in " "the PDF export dialog, e.g. \"1.4\" which is PDF-a conformant)" msgstr "" -#: ../src/main.cpp:435 +#: ../src/main.cpp:437 msgid "PDF_VERSION" msgstr "" -#: ../src/main.cpp:439 +#: ../src/main.cpp:441 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 "" -#: ../src/main.cpp:444 +#: ../src/main.cpp:446 msgid "Export document to an Enhanced Metafile (EMF) File" msgstr "" -#: ../src/main.cpp:449 +#: ../src/main.cpp:451 msgid "Export document to a Windows Metafile (WMF) File" msgstr "" -#: ../src/main.cpp:454 +#: ../src/main.cpp:456 msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" msgstr "" -#: ../src/main.cpp:459 +#: ../src/main.cpp:461 msgid "" "Render filtered objects without filters, instead of rasterizing (PS, EPS, " "PDF)" msgstr "" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:465 +#: ../src/main.cpp:467 msgid "" "Query the X coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:471 +#: ../src/main.cpp:473 msgid "" "Query the Y coordinate of the drawing or, if specified, of the object with --" "query-id" msgstr "" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:477 +#: ../src/main.cpp:479 msgid "" "Query the width of the drawing or, if specified, of the object with --query-" "id" msgstr "" #. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:483 +#: ../src/main.cpp:485 msgid "" "Query the height of the drawing or, if specified, of the object with --query-" "id" msgstr "" -#: ../src/main.cpp:488 +#: ../src/main.cpp:490 msgid "List id,x,y,w,h for all objects" msgstr "" -#: ../src/main.cpp:493 +#: ../src/main.cpp:495 msgid "The ID of the object whose dimensions are queried" msgstr "" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory -#: ../src/main.cpp:499 +#: ../src/main.cpp:501 msgid "Print out the extension directory and exit" msgstr "" -#: ../src/main.cpp:504 +#: ../src/main.cpp:506 msgid "Remove unused definitions from the defs section(s) of the document" msgstr "" -#: ../src/main.cpp:510 +#: ../src/main.cpp:512 msgid "Enter a listening loop for D-Bus messages in console mode" msgstr "" -#: ../src/main.cpp:515 +#: ../src/main.cpp:517 msgid "" "Specify the D-Bus bus name to listen for messages on (default is org." "inkscape)" msgstr "" -#: ../src/main.cpp:516 +#: ../src/main.cpp:518 msgid "BUS-NAME" msgstr "" -#: ../src/main.cpp:521 +#: ../src/main.cpp:523 msgid "List the IDs of all the verbs in Inkscape" msgstr "" -#: ../src/main.cpp:526 +#: ../src/main.cpp:528 msgid "Verb to call when Inkscape opens." msgstr "" -#: ../src/main.cpp:527 +#: ../src/main.cpp:529 msgid "VERB-ID" msgstr "" -#: ../src/main.cpp:531 +#: ../src/main.cpp:533 msgid "Object ID to select when Inkscape opens." msgstr "" -#: ../src/main.cpp:532 +#: ../src/main.cpp:534 msgid "OBJECT-ID" msgstr "" -#: ../src/main.cpp:536 +#: ../src/main.cpp:538 msgid "Start Inkscape in interactive shell mode." msgstr "" -#: ../src/main.cpp:541 +#: ../src/main.cpp:543 msgid "Do not fix legacy (pre-0.92) files' text baseline spacing on opening." msgstr "" -#: ../src/main.cpp:546 -msgid "Method used to convert pre-.92 document dpi, if needed." +#: ../src/main.cpp:548 +msgid "" +"Method used to convert pre-.92 document dpi, if needed. ([none|scale-viewbox|" +"scale-document])" msgstr "" -#: ../src/main.cpp:865 ../src/main.cpp:1259 +#: ../src/main.cpp:837 ../src/main.cpp:1185 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -12230,43 +12339,43 @@ msgstr "" msgid "Breaking apart paths..." msgstr "" -#: ../src/path-chemistry.cpp:289 +#: ../src/path-chemistry.cpp:287 msgid "Break apart" msgstr "" -#: ../src/path-chemistry.cpp:293 +#: ../src/path-chemistry.cpp:291 msgid "No path(s) to break apart in the selection." msgstr "" -#: ../src/path-chemistry.cpp:301 +#: ../src/path-chemistry.cpp:299 msgid "Select object(s) to convert to path." msgstr "" -#: ../src/path-chemistry.cpp:307 +#: ../src/path-chemistry.cpp:305 msgid "Converting objects to paths..." msgstr "" -#: ../src/path-chemistry.cpp:327 +#: ../src/path-chemistry.cpp:328 msgid "Object to path" msgstr "" -#: ../src/path-chemistry.cpp:330 +#: ../src/path-chemistry.cpp:331 msgid "No objects to convert to path in the selection." msgstr "" -#: ../src/path-chemistry.cpp:614 +#: ../src/path-chemistry.cpp:624 msgid "Select path(s) to reverse." msgstr "" -#: ../src/path-chemistry.cpp:622 +#: ../src/path-chemistry.cpp:632 msgid "Reversing paths..." msgstr "" -#: ../src/path-chemistry.cpp:660 +#: ../src/path-chemistry.cpp:670 msgid "Reverse path" msgstr "" -#: ../src/path-chemistry.cpp:663 +#: ../src/path-chemistry.cpp:673 msgid "No paths to reverse in the selection." msgstr "" @@ -12389,7 +12498,7 @@ msgstr "" #. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1881 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1882 #: ../src/ui/dialog/object-attributes.cpp:54 msgid "Title:" msgstr "" @@ -12464,7 +12573,7 @@ msgstr "" msgid "A related resource" msgstr "" -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1897 +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1954 msgid "Language:" msgstr "" @@ -12541,7 +12650,7 @@ msgid "Nothing was deleted." msgstr "" #: ../src/selection-chemistry.cpp:410 ../src/ui/dialog/swatches.cpp:270 -#: ../src/ui/tools/text-tool.cpp:959 ../src/widgets/eraser-toolbar.cpp:145 +#: ../src/ui/tools/text-tool.cpp:955 ../src/widgets/eraser-toolbar.cpp:145 #: ../src/widgets/gradient-toolbar.cpp:1182 #: ../src/widgets/gradient-toolbar.cpp:1196 #: ../src/widgets/gradient-toolbar.cpp:1210 ../src/widgets/node-toolbar.cpp:399 @@ -12565,503 +12674,503 @@ msgstr "" msgid "Select some objects to group." msgstr "" -#: ../src/selection-chemistry.cpp:765 +#: ../src/selection-chemistry.cpp:769 msgctxt "Verb" msgid "Group" msgstr "" -#: ../src/selection-chemistry.cpp:787 +#: ../src/selection-chemistry.cpp:785 msgid "No objects selected to pop out of group." msgstr "" -#: ../src/selection-chemistry.cpp:796 +#: ../src/selection-chemistry.cpp:794 msgid "Selection not in a group." msgstr "" -#: ../src/selection-chemistry.cpp:811 +#: ../src/selection-chemistry.cpp:809 msgid "Pop selection from group" msgstr "" -#: ../src/selection-chemistry.cpp:875 +#: ../src/selection-chemistry.cpp:871 msgid "Select a group to ungroup." msgstr "" -#: ../src/selection-chemistry.cpp:881 +#: ../src/selection-chemistry.cpp:877 msgid "No groups to ungroup in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:888 ../src/sp-item-group.cpp:656 -#: ../src/ui/dialog/objects.cpp:1942 +#: ../src/selection-chemistry.cpp:884 ../src/sp-item-group.cpp:651 +#: ../src/ui/dialog/objects.cpp:1946 msgid "Ungroup" msgstr "" -#: ../src/selection-chemistry.cpp:975 ../src/selection-chemistry.cpp:1027 +#: ../src/selection-chemistry.cpp:971 ../src/selection-chemistry.cpp:1023 msgid "Select object(s) to raise." msgstr "" -#: ../src/selection-chemistry.cpp:982 ../src/selection-chemistry.cpp:1033 -#: ../src/selection-chemistry.cpp:1059 ../src/selection-chemistry.cpp:1116 +#: ../src/selection-chemistry.cpp:978 ../src/selection-chemistry.cpp:1029 +#: ../src/selection-chemistry.cpp:1055 ../src/selection-chemistry.cpp:1112 msgid "" "You cannot raise/lower objects from different groups or layers." msgstr "" #. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:1021 +#: ../src/selection-chemistry.cpp:1017 msgctxt "Undo action" msgid "Raise" msgstr "" -#: ../src/selection-chemistry.cpp:1047 +#: ../src/selection-chemistry.cpp:1043 msgid "Raise to top" msgstr "" -#: ../src/selection-chemistry.cpp:1053 +#: ../src/selection-chemistry.cpp:1049 msgid "Select object(s) to lower." msgstr "" #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1102 +#: ../src/selection-chemistry.cpp:1098 msgctxt "Undo action" msgid "Lower" msgstr "" -#: ../src/selection-chemistry.cpp:1110 +#: ../src/selection-chemistry.cpp:1106 msgid "Select object(s) to lower to bottom." msgstr "" -#: ../src/selection-chemistry.cpp:1140 +#: ../src/selection-chemistry.cpp:1136 msgid "Lower to bottom" msgstr "" -#: ../src/selection-chemistry.cpp:1146 +#: ../src/selection-chemistry.cpp:1142 msgid "Select object(s) to stack up." msgstr "" -#: ../src/selection-chemistry.cpp:1157 +#: ../src/selection-chemistry.cpp:1153 msgid "We hit top." msgstr "" #. TRANSLATORS: undo history: "stack up" means to raise an object of its ordinal position by 1 -#: ../src/selection-chemistry.cpp:1165 +#: ../src/selection-chemistry.cpp:1161 msgctxt "Undo action" msgid "stack up" msgstr "" -#: ../src/selection-chemistry.cpp:1170 +#: ../src/selection-chemistry.cpp:1166 msgid "Select object(s) to stack down." msgstr "" -#: ../src/selection-chemistry.cpp:1181 +#: ../src/selection-chemistry.cpp:1177 msgid "We hit bottom." msgstr "" #. TRANSLATORS: undo history: "stack down" means to lower an object of its ordinal position by 1 -#: ../src/selection-chemistry.cpp:1189 +#: ../src/selection-chemistry.cpp:1185 msgctxt "Undo action" msgid "stack down" msgstr "" -#: ../src/selection-chemistry.cpp:1199 +#: ../src/selection-chemistry.cpp:1195 msgid "Nothing to undo." msgstr "" -#: ../src/selection-chemistry.cpp:1210 +#: ../src/selection-chemistry.cpp:1206 msgid "Nothing to redo." msgstr "" -#: ../src/selection-chemistry.cpp:1282 +#: ../src/selection-chemistry.cpp:1278 msgid "Paste" msgstr "" -#: ../src/selection-chemistry.cpp:1290 +#: ../src/selection-chemistry.cpp:1286 msgid "Paste style" msgstr "" -#: ../src/selection-chemistry.cpp:1299 +#: ../src/selection-chemistry.cpp:1295 msgid "Paste live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1319 +#: ../src/selection-chemistry.cpp:1315 msgid "Select object(s) to remove live path effects from." msgstr "" -#: ../src/selection-chemistry.cpp:1332 +#: ../src/selection-chemistry.cpp:1328 msgid "Remove live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1341 +#: ../src/selection-chemistry.cpp:1337 msgid "Select object(s) to remove filters from." msgstr "" -#: ../src/selection-chemistry.cpp:1351 +#: ../src/selection-chemistry.cpp:1347 #: ../src/ui/dialog/filter-effects-dialog.cpp:1674 msgid "Remove filter" msgstr "" -#: ../src/selection-chemistry.cpp:1360 +#: ../src/selection-chemistry.cpp:1356 msgid "Paste size" msgstr "" -#: ../src/selection-chemistry.cpp:1369 +#: ../src/selection-chemistry.cpp:1365 msgid "Paste size separately" msgstr "" -#: ../src/selection-chemistry.cpp:1399 +#: ../src/selection-chemistry.cpp:1395 msgid "Select object(s) to move to the layer above." msgstr "" -#: ../src/selection-chemistry.cpp:1425 +#: ../src/selection-chemistry.cpp:1421 msgid "Raise to next layer" msgstr "" -#: ../src/selection-chemistry.cpp:1432 +#: ../src/selection-chemistry.cpp:1428 msgid "No more layers above." msgstr "" -#: ../src/selection-chemistry.cpp:1445 +#: ../src/selection-chemistry.cpp:1441 msgid "Select object(s) to move to the layer below." msgstr "" -#: ../src/selection-chemistry.cpp:1471 +#: ../src/selection-chemistry.cpp:1467 msgid "Lower to previous layer" msgstr "" -#: ../src/selection-chemistry.cpp:1478 +#: ../src/selection-chemistry.cpp:1474 msgid "No more layers below." msgstr "" -#: ../src/selection-chemistry.cpp:1491 +#: ../src/selection-chemistry.cpp:1487 msgid "Select object(s) to move." msgstr "" -#: ../src/selection-chemistry.cpp:1509 ../src/verbs.cpp:2819 +#: ../src/selection-chemistry.cpp:1505 ../src/verbs.cpp:2839 msgid "Move selection to layer" msgstr "" -#: ../src/selection-chemistry.cpp:1601 ../src/seltrans.cpp:385 +#: ../src/selection-chemistry.cpp:1597 ../src/seltrans.cpp:385 msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1767 +#: ../src/selection-chemistry.cpp:1763 msgid "Remove transform" msgstr "" -#: ../src/selection-chemistry.cpp:1866 +#: ../src/selection-chemistry.cpp:1862 msgid "Rotate 90° CCW" msgstr "" -#: ../src/selection-chemistry.cpp:1866 +#: ../src/selection-chemistry.cpp:1862 msgid "Rotate 90° CW" msgstr "" -#: ../src/selection-chemistry.cpp:1885 ../src/seltrans.cpp:478 +#: ../src/selection-chemistry.cpp:1881 ../src/seltrans.cpp:478 #: ../src/ui/dialog/transformation.cpp:784 msgid "Rotate" msgstr "" -#: ../src/selection-chemistry.cpp:2233 +#: ../src/selection-chemistry.cpp:2227 msgid "Rotate by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2286 +#: ../src/selection-chemistry.cpp:2280 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2300 +#: ../src/selection-chemistry.cpp:2294 msgid "Move vertically" msgstr "" -#: ../src/selection-chemistry.cpp:2303 +#: ../src/selection-chemistry.cpp:2297 msgid "Move horizontally" msgstr "" -#: ../src/selection-chemistry.cpp:2306 ../src/selection-chemistry.cpp:2331 +#: ../src/selection-chemistry.cpp:2300 ../src/selection-chemistry.cpp:2325 #: ../src/seltrans.cpp:472 ../src/ui/dialog/transformation.cpp:695 msgid "Move" msgstr "" -#: ../src/selection-chemistry.cpp:2325 +#: ../src/selection-chemistry.cpp:2319 msgid "Move vertically by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2328 +#: ../src/selection-chemistry.cpp:2322 msgid "Move horizontally by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2532 +#: ../src/selection-chemistry.cpp:2530 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2620 ../src/ui/dialog/clonetiler.cpp:2060 +#: ../src/selection-chemistry.cpp:2588 ../src/ui/dialog/clonetiler.cpp:2058 msgid "Select an object to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2655 +#: ../src/selection-chemistry.cpp:2623 msgctxt "Action" msgid "Clone" msgstr "" -#: ../src/selection-chemistry.cpp:2664 +#: ../src/selection-chemistry.cpp:2632 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2672 +#: ../src/selection-chemistry.cpp:2640 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2694 +#: ../src/selection-chemistry.cpp:2662 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2697 +#: ../src/selection-chemistry.cpp:2665 msgid "Relink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2706 ../src/selection-chemistry.cpp:2792 +#: ../src/selection-chemistry.cpp:2674 ../src/selection-chemistry.cpp:2760 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2779 ../src/selection-chemistry.cpp:2810 +#: ../src/selection-chemistry.cpp:2747 ../src/selection-chemistry.cpp:2778 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2784 +#: ../src/selection-chemistry.cpp:2752 msgid "Unlink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2814 +#: ../src/selection-chemistry.cpp:2782 msgid "Unlink clone recursively" msgstr "" -#: ../src/selection-chemistry.cpp:2824 +#: ../src/selection-chemistry.cpp:2792 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 "" -#: ../src/selection-chemistry.cpp:2877 +#: ../src/selection-chemistry.cpp:2833 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2884 +#: ../src/selection-chemistry.cpp:2840 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -#: ../src/selection-chemistry.cpp:2970 +#: ../src/selection-chemistry.cpp:2938 msgid "Select path(s) to fill." msgstr "" -#: ../src/selection-chemistry.cpp:2987 +#: ../src/selection-chemistry.cpp:2955 msgid "Select object(s) to convert to marker." msgstr "" -#: ../src/selection-chemistry.cpp:3059 +#: ../src/selection-chemistry.cpp:3027 msgid "Objects to marker" msgstr "" -#: ../src/selection-chemistry.cpp:3082 +#: ../src/selection-chemistry.cpp:3050 msgid "Select object(s) to convert to guides." msgstr "" -#: ../src/selection-chemistry.cpp:3103 +#: ../src/selection-chemistry.cpp:3071 msgid "Objects to guides" msgstr "" -#: ../src/selection-chemistry.cpp:3135 +#: ../src/selection-chemistry.cpp:3102 msgid "Select objects to convert to symbol." msgstr "" -#: ../src/selection-chemistry.cpp:3239 +#: ../src/selection-chemistry.cpp:3245 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3253 +#: ../src/selection-chemistry.cpp:3258 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3263 +#: ../src/selection-chemistry.cpp:3268 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3319 +#: ../src/selection-chemistry.cpp:3329 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3334 +#: ../src/selection-chemistry.cpp:3344 msgid "Select object(s) to convert to pattern." msgstr "" -#: ../src/selection-chemistry.cpp:3430 +#: ../src/selection-chemistry.cpp:3440 msgid "Objects to pattern" msgstr "" -#: ../src/selection-chemistry.cpp:3442 +#: ../src/selection-chemistry.cpp:3452 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3502 +#: ../src/selection-chemistry.cpp:3512 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3505 +#: ../src/selection-chemistry.cpp:3515 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3587 +#: ../src/selection-chemistry.cpp:3597 msgid "Select object(s) to make a bitmap copy." msgstr "" -#: ../src/selection-chemistry.cpp:3591 +#: ../src/selection-chemistry.cpp:3601 msgid "Rendering bitmap..." msgstr "" -#: ../src/selection-chemistry.cpp:3778 +#: ../src/selection-chemistry.cpp:3788 msgid "Create bitmap" msgstr "" -#: ../src/selection-chemistry.cpp:3800 ../src/selection-chemistry.cpp:3910 +#: ../src/selection-chemistry.cpp:3810 ../src/selection-chemistry.cpp:3919 msgid "Select object(s) to create clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:3886 ../src/ui/dialog/objects.cpp:1948 +#: ../src/selection-chemistry.cpp:3895 ../src/ui/dialog/objects.cpp:1952 msgid "Create Clip Group" msgstr "" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:3923 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:4058 +#: ../src/selection-chemistry.cpp:4073 msgid "Set clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4060 +#: ../src/selection-chemistry.cpp:4075 msgid "Set mask" msgstr "" -#: ../src/selection-chemistry.cpp:4072 +#: ../src/selection-chemistry.cpp:4087 msgid "Select object(s) to remove clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:4189 +#: ../src/selection-chemistry.cpp:4200 msgid "Release clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4191 +#: ../src/selection-chemistry.cpp:4202 msgid "Release mask" msgstr "" -#: ../src/selection-chemistry.cpp:4207 +#: ../src/selection-chemistry.cpp:4218 msgid "Select object(s) to fit canvas to." msgstr "" #. Fit Page -#: ../src/selection-chemistry.cpp:4215 ../src/verbs.cpp:3186 +#: ../src/selection-chemistry.cpp:4226 ../src/verbs.cpp:3210 msgid "Fit Page to Selection" msgstr "" -#: ../src/selection-chemistry.cpp:4289 ../src/verbs.cpp:2689 +#: ../src/selection-chemistry.cpp:4300 ../src/verbs.cpp:2709 msgid "Swap fill and stroke of an object" msgstr "" -#: ../src/selection-chemistry.cpp:4317 ../src/verbs.cpp:3188 +#: ../src/selection-chemistry.cpp:4328 ../src/verbs.cpp:3212 msgid "Fit Page to Drawing" msgstr "" -#: ../src/selection-chemistry.cpp:4338 +#: ../src/selection-chemistry.cpp:4349 msgid "Fit Page to Selection or Drawing" msgstr "" -#: ../src/selection-describer.cpp:129 +#: ../src/selection-describer.cpp:128 msgid "root" msgstr "" -#: ../src/selection-describer.cpp:131 ../src/widgets/ege-paint-def.cpp:64 +#: ../src/selection-describer.cpp:130 ../src/widgets/ege-paint-def.cpp:64 #: ../src/widgets/ege-paint-def.cpp:88 msgid "none" msgstr "" -#: ../src/selection-describer.cpp:143 +#: ../src/selection-describer.cpp:142 #, c-format msgid "layer %s" msgstr "" -#: ../src/selection-describer.cpp:145 +#: ../src/selection-describer.cpp:144 #, c-format msgid "layer %s" msgstr "" -#: ../src/selection-describer.cpp:156 +#: ../src/selection-describer.cpp:155 #, c-format msgid "%s" msgstr "" -#: ../src/selection-describer.cpp:166 +#: ../src/selection-describer.cpp:165 #, c-format msgid " in %s" msgstr "" -#: ../src/selection-describer.cpp:168 +#: ../src/selection-describer.cpp:167 msgid " hidden in definitions" msgstr "" -#: ../src/selection-describer.cpp:170 +#: ../src/selection-describer.cpp:169 #, c-format msgid " in group %s (%s)" msgstr "" -#: ../src/selection-describer.cpp:172 +#: ../src/selection-describer.cpp:171 #, c-format msgid " in unnamed group (%s)" msgstr "" -#: ../src/selection-describer.cpp:174 +#: ../src/selection-describer.cpp:173 #, c-format msgid " in %i parent (%s)" msgid_plural " in %i parents (%s)" msgstr[0] "" msgstr[1] "" -#: ../src/selection-describer.cpp:177 +#: ../src/selection-describer.cpp:176 #, c-format msgid " in %i layer" msgid_plural " in %i layers" msgstr[0] "" msgstr[1] "" -#: ../src/selection-describer.cpp:189 +#: ../src/selection-describer.cpp:188 msgid "Convert symbol to group to edit" msgstr "" -#: ../src/selection-describer.cpp:193 +#: ../src/selection-describer.cpp:192 msgid "Remove from symbols tray to edit symbol" msgstr "" -#: ../src/selection-describer.cpp:199 +#: ../src/selection-describer.cpp:198 msgid "Use Shift+D to look up original" msgstr "" -#: ../src/selection-describer.cpp:205 +#: ../src/selection-describer.cpp:204 msgid "Use Shift+D to look up path" msgstr "" -#: ../src/selection-describer.cpp:211 +#: ../src/selection-describer.cpp:210 msgid "Use Shift+D to look up frame" msgstr "" -#: ../src/selection-describer.cpp:227 +#: ../src/selection-describer.cpp:226 #, c-format msgid "%1$i objects selected of type %2$s" msgid_plural "%1$i objects selected of types %2$s" msgstr[0] "" msgstr[1] "" -#: ../src/selection-describer.cpp:237 +#: ../src/selection-describer.cpp:236 #, c-format msgid "; %d filtered object " msgid_plural "; %d filtered objects " @@ -13114,39 +13223,39 @@ msgstr "" msgid "Reset center" msgstr "" -#: ../src/seltrans.cpp:958 ../src/seltrans.cpp:1062 +#: ../src/seltrans.cpp:960 ../src/seltrans.cpp:1064 #, c-format msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1199 +#: ../src/seltrans.cpp:1201 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1275 +#: ../src/seltrans.cpp:1277 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" msgstr "" -#: ../src/seltrans.cpp:1312 +#: ../src/seltrans.cpp:1314 #, c-format msgid "Move center to %s, %s" msgstr "" -#: ../src/seltrans.cpp:1458 +#: ../src/seltrans.cpp:1459 #, c-format msgid "" "Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " "with Shift to disable snapping" msgstr "" -#: ../src/shortcuts.cpp:397 ../src/ui/dialog/export.cpp:1296 -#: ../src/ui/dialog/export.cpp:1330 +#: ../src/shortcuts.cpp:397 ../src/ui/dialog/export.cpp:1293 +#: ../src/ui/dialog/export.cpp:1323 msgid "Select a filename for exporting" msgstr "" @@ -13167,31 +13276,31 @@ msgstr "" msgid "without URI" msgstr "" -#: ../src/sp-ellipse.cpp:385 ../src/widgets/arc-toolbar.cpp:364 +#: ../src/sp-ellipse.cpp:387 ../src/widgets/arc-toolbar.cpp:516 msgid "Slice" msgstr "" -#: ../src/sp-ellipse.cpp:388 ../src/widgets/arc-toolbar.cpp:378 +#: ../src/sp-ellipse.cpp:390 ../src/widgets/arc-toolbar.cpp:530 msgid "Chord" msgstr "" -#: ../src/sp-ellipse.cpp:391 +#: ../src/sp-ellipse.cpp:393 msgid "Arc" msgstr "" #. Ellipse -#: ../src/sp-ellipse.cpp:395 ../src/sp-ellipse.cpp:402 -#: ../src/ui/dialog/inkscape-preferences.cpp:407 -#: ../src/widgets/pencil-toolbar.cpp:176 +#: ../src/sp-ellipse.cpp:397 ../src/sp-ellipse.cpp:404 +#: ../src/ui/dialog/inkscape-preferences.cpp:443 +#: ../src/widgets/pencil-toolbar.cpp:219 msgid "Ellipse" msgstr "" -#: ../src/sp-ellipse.cpp:399 +#: ../src/sp-ellipse.cpp:401 msgid "Circle" msgstr "" #. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:178 +#: ../src/sp-flowregion.cpp:169 msgid "Flow Region" msgstr "" @@ -13199,35 +13308,35 @@ msgstr "" #. * flow excluded region. flowRegionExclude in SVG 1.2: see #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegion-elem and #. * http://www.w3.org/TR/2004/WD-SVG12-20041027/flow.html#flowRegionExclude-elem. -#: ../src/sp-flowregion.cpp:331 +#: ../src/sp-flowregion.cpp:313 msgid "Flow Excluded Region" msgstr "" -#: ../src/sp-flowtext.cpp:279 +#: ../src/sp-flowtext.cpp:273 msgid "Flowed Text" msgstr "" -#: ../src/sp-flowtext.cpp:281 +#: ../src/sp-flowtext.cpp:275 msgid "Linked Flowed Text" msgstr "" -#: ../src/sp-flowtext.cpp:287 ../src/sp-text.cpp:368 -#: ../src/ui/tools/text-tool.cpp:1602 +#: ../src/sp-flowtext.cpp:281 ../src/sp-text.cpp:339 +#: ../src/ui/tools/text-tool.cpp:1598 msgid " [truncated]" msgstr "" -#: ../src/sp-flowtext.cpp:289 +#: ../src/sp-flowtext.cpp:283 #, c-format msgid "(%d character%s)" msgid_plural "(%d characters%s)" msgstr[0] "" msgstr[1] "" -#: ../src/sp-guide.cpp:258 +#: ../src/sp-guide.cpp:257 msgid "Create Guides Around the Page" msgstr "" -#: ../src/sp-guide.cpp:271 ../src/verbs.cpp:2681 +#: ../src/sp-guide.cpp:270 ../src/verbs.cpp:2701 msgid "Delete All Guides" msgstr "" @@ -13257,35 +13366,35 @@ msgstr "" msgid "at %d degrees, through (%s,%s)" msgstr "" -#: ../src/sp-image.cpp:514 +#: ../src/sp-image.cpp:499 msgid "embedded" msgstr "" -#: ../src/sp-image.cpp:522 +#: ../src/sp-image.cpp:507 #, c-format msgid "[bad reference]: %s" msgstr "" -#: ../src/sp-image.cpp:523 +#: ../src/sp-image.cpp:508 #, c-format msgid "%d × %d: %s" msgstr "" -#: ../src/sp-item-group.cpp:312 ../src/ui/dialog/objects.cpp:1941 +#: ../src/sp-item-group.cpp:309 ../src/ui/dialog/objects.cpp:1945 msgid "Group" msgstr "" -#: ../src/sp-item-group.cpp:318 ../src/sp-switch.cpp:69 +#: ../src/sp-item-group.cpp:315 ../src/sp-switch.cpp:69 #, c-format msgid "of %d object" msgstr "" -#: ../src/sp-item-group.cpp:318 ../src/sp-switch.cpp:69 +#: ../src/sp-item-group.cpp:315 ../src/sp-switch.cpp:69 #, c-format msgid "of %d objects" msgstr "" -#: ../src/sp-item.cpp:1032 ../src/verbs.cpp:208 +#: ../src/sp-item.cpp:1032 ../src/verbs.cpp:211 msgid "Object" msgstr "" @@ -13313,7 +13422,7 @@ msgstr "" msgid "Line" msgstr "" -#: ../src/sp-lpe-item.cpp:296 ../src/sp-lpe-item.cpp:765 +#: ../src/sp-lpe-item.cpp:296 ../src/sp-lpe-item.cpp:802 msgid "An exception occurred during execution of the Path Effect." msgstr "" @@ -13367,12 +13476,12 @@ msgid "Polyline" msgstr "" #. Rectangle -#: ../src/sp-rect.cpp:194 ../src/ui/dialog/inkscape-preferences.cpp:397 +#: ../src/sp-rect.cpp:194 ../src/ui/dialog/inkscape-preferences.cpp:433 msgid "Rectangle" msgstr "" #. Spiral -#: ../src/sp-spiral.cpp:218 ../src/ui/dialog/inkscape-preferences.cpp:415 +#: ../src/sp-spiral.cpp:218 ../src/ui/dialog/inkscape-preferences.cpp:451 #: ../share/extensions/gcodetools_area.inx.h:16 msgid "Spiral" msgstr "" @@ -13385,24 +13494,24 @@ msgid "with %3f turns" msgstr "" #. Star -#: ../src/sp-star.cpp:245 ../src/ui/dialog/inkscape-preferences.cpp:411 +#: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:447 #: ../src/widgets/star-toolbar.cpp:467 msgid "Star" msgstr "" -#: ../src/sp-star.cpp:246 ../src/widgets/star-toolbar.cpp:460 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:460 msgid "Polygon" msgstr "" #. while there will never be less than 3 vertices, we still need to #. make calls to ngettext because the pluralization may be different #. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:253 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertex" msgstr "" -#: ../src/sp-star.cpp:253 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertices" msgstr "" @@ -13411,7 +13520,7 @@ msgstr "" msgid "Conditional Group" msgstr "" -#: ../src/sp-text.cpp:349 ../src/verbs.cpp:342 +#: ../src/sp-text.cpp:320 ../src/verbs.cpp:345 #: ../share/extensions/lorem_ipsum.inx.h:8 #: ../share/extensions/replace_font.inx.h:11 ../share/extensions/split.inx.h:10 #: ../share/extensions/text_braille.inx.h:2 @@ -13426,12 +13535,12 @@ msgstr "" msgid "Text" msgstr "" -#: ../src/sp-text.cpp:372 +#: ../src/sp-text.cpp:343 #, c-format msgid "on path%s (%s, %s)" msgstr "" -#: ../src/sp-text.cpp:373 +#: ../src/sp-text.cpp:344 #, c-format msgid "%s (%s, %s)" msgstr "" @@ -13444,38 +13553,38 @@ msgstr "" msgid " from " msgstr "" -#: ../src/sp-tref.cpp:237 ../src/sp-use.cpp:272 +#: ../src/sp-tref.cpp:237 ../src/sp-use.cpp:269 msgid "[orphaned]" msgstr "" -#: ../src/sp-tspan.cpp:215 +#: ../src/sp-tspan.cpp:214 msgid "Text Span" msgstr "" -#: ../src/sp-use.cpp:235 +#: ../src/sp-use.cpp:232 msgid "Symbol" msgstr "" -#: ../src/sp-use.cpp:237 +#: ../src/sp-use.cpp:234 msgid "Clone" msgstr "" -#: ../src/sp-use.cpp:245 ../src/sp-use.cpp:247 ../src/sp-use.cpp:249 +#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 #, c-format msgid "called %s" msgstr "" -#: ../src/sp-use.cpp:249 +#: ../src/sp-use.cpp:246 msgid "Unnamed Symbol" msgstr "" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:258 +#: ../src/sp-use.cpp:255 msgid "..." msgstr "" -#: ../src/sp-use.cpp:267 +#: ../src/sp-use.cpp:264 #, c-format msgid "of: %s" msgstr "" @@ -13603,61 +13712,61 @@ msgstr "" msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "" -#: ../src/text-chemistry.cpp:181 ../src/verbs.cpp:2716 +#: ../src/text-chemistry.cpp:181 ../src/verbs.cpp:2736 msgid "Put text on path" msgstr "" -#: ../src/text-chemistry.cpp:193 +#: ../src/text-chemistry.cpp:192 msgid "Select a text on path to remove it from path." msgstr "" -#: ../src/text-chemistry.cpp:212 +#: ../src/text-chemistry.cpp:211 msgid "No texts-on-paths in the selection." msgstr "" -#: ../src/text-chemistry.cpp:215 ../src/verbs.cpp:2718 +#: ../src/text-chemistry.cpp:214 ../src/verbs.cpp:2738 msgid "Remove text from path" msgstr "" -#: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 +#: ../src/text-chemistry.cpp:256 ../src/text-chemistry.cpp:276 msgid "Select text(s) to remove kerns from." msgstr "" -#: ../src/text-chemistry.cpp:280 +#: ../src/text-chemistry.cpp:279 msgid "Remove manual kerns" msgstr "" -#: ../src/text-chemistry.cpp:300 +#: ../src/text-chemistry.cpp:299 msgid "" "Select a text and one or more paths or shapes to flow text " "into frame." msgstr "" -#: ../src/text-chemistry.cpp:369 +#: ../src/text-chemistry.cpp:368 msgid "Flow text into shape" msgstr "" -#: ../src/text-chemistry.cpp:391 +#: ../src/text-chemistry.cpp:390 msgid "Select a flowed text to unflow it." msgstr "" -#: ../src/text-chemistry.cpp:464 +#: ../src/text-chemistry.cpp:461 msgid "Unflow flowed text" msgstr "" -#: ../src/text-chemistry.cpp:476 +#: ../src/text-chemistry.cpp:473 msgid "Select flowed text(s) to convert." msgstr "" -#: ../src/text-chemistry.cpp:494 +#: ../src/text-chemistry.cpp:491 msgid "The flowed text(s) must be visible in order to be converted." msgstr "" -#: ../src/text-chemistry.cpp:521 +#: ../src/text-chemistry.cpp:518 msgid "Convert flowed text to text" msgstr "" -#: ../src/text-chemistry.cpp:526 +#: ../src/text-chemistry.cpp:523 msgid "No flowed text(s) to convert in the selection." msgstr "" @@ -13716,44 +13825,48 @@ msgid "Trace: Done. %ld nodes created" msgstr "" #. check whether something is selected -#: ../src/ui/clipboard.cpp:258 +#: ../src/ui/clipboard.cpp:259 msgid "Nothing was copied." msgstr "" -#: ../src/ui/clipboard.cpp:389 ../src/ui/clipboard.cpp:604 -#: ../src/ui/clipboard.cpp:633 +#: ../src/ui/clipboard.cpp:390 ../src/ui/clipboard.cpp:605 +#: ../src/ui/clipboard.cpp:634 ../src/ui/clipboard.cpp:666 msgid "Nothing on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:446 +#: ../src/ui/clipboard.cpp:447 msgid "Select object(s) to paste style to." msgstr "" -#: ../src/ui/clipboard.cpp:457 ../src/ui/clipboard.cpp:474 +#: ../src/ui/clipboard.cpp:458 ../src/ui/clipboard.cpp:475 msgid "No style on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:500 +#: ../src/ui/clipboard.cpp:501 msgid "Select object(s) to paste size to." msgstr "" -#: ../src/ui/clipboard.cpp:508 +#: ../src/ui/clipboard.cpp:509 msgid "No size on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:565 +#: ../src/ui/clipboard.cpp:566 msgid "Select object(s) to paste live path effect to." msgstr "" #. no_effect: -#: ../src/ui/clipboard.cpp:591 +#: ../src/ui/clipboard.cpp:592 msgid "No effect on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:610 ../src/ui/clipboard.cpp:647 +#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 msgid "Clipboard does not contain a path." msgstr "" +#: ../src/ui/clipboard.cpp:697 +msgid "Clipboard does not contain any." +msgstr "" + #: ../src/ui/contextmenu.cpp:58 msgid "Go to parent" msgstr "" @@ -13788,7 +13901,7 @@ msgid "_Pop selection out of group" msgstr "" #. Item dialog -#: ../src/ui/contextmenu.cpp:323 ../src/verbs.cpp:3118 +#: ../src/ui/contextmenu.cpp:323 ../src/verbs.cpp:3142 msgid "_Object Properties..." msgstr "" @@ -13836,7 +13949,7 @@ msgid "Create _Link" msgstr "" #. Set mask -#: ../src/ui/contextmenu.cpp:421 ../src/ui/dialog/objects.cpp:1956 +#: ../src/ui/contextmenu.cpp:421 ../src/ui/dialog/objects.cpp:1960 msgid "Set Mask" msgstr "" @@ -13861,7 +13974,7 @@ msgid "Release C_lip" msgstr "" #. Group -#: ../src/ui/contextmenu.cpp:472 ../src/verbs.cpp:2708 +#: ../src/ui/contextmenu.cpp:472 ../src/verbs.cpp:2728 msgid "_Group" msgstr "" @@ -13870,7 +13983,7 @@ msgid "Create link" msgstr "" #. Ungroup -#: ../src/ui/contextmenu.cpp:578 ../src/verbs.cpp:2710 +#: ../src/ui/contextmenu.cpp:578 ../src/verbs.cpp:2730 msgid "_Ungroup" msgstr "" @@ -13905,7 +14018,7 @@ msgstr "" #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/ui/contextmenu.cpp:676 ../src/verbs.cpp:2789 +#: ../src/ui/contextmenu.cpp:676 ../src/verbs.cpp:2809 msgid "_Trace Bitmap..." msgstr "" @@ -13927,17 +14040,17 @@ msgstr "" #. Item dialog #. Fill and Stroke dialog #: ../src/ui/contextmenu.cpp:850 ../src/ui/contextmenu.cpp:870 -#: ../src/verbs.cpp:3081 +#: ../src/verbs.cpp:3105 msgid "_Fill and Stroke..." msgstr "" #. Edit Text dialog -#: ../src/ui/contextmenu.cpp:876 ../src/verbs.cpp:3100 +#: ../src/ui/contextmenu.cpp:876 ../src/verbs.cpp:3124 msgid "_Text and Font..." msgstr "" #. Spellcheck dialog -#: ../src/ui/contextmenu.cpp:882 ../src/verbs.cpp:3108 +#: ../src/ui/contextmenu.cpp:882 ../src/verbs.cpp:3132 msgid "Check Spellin_g..." msgstr "" @@ -14048,7 +14161,7 @@ msgid "Rearrange" msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:919 -#: ../src/widgets/toolbox.cpp:1291 +#: ../src/widgets/toolbox.cpp:1286 msgid "Nodes" msgstr "" @@ -14062,53 +14175,53 @@ msgid "_Treat selection as group: " msgstr "" #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:933 ../src/verbs.cpp:3218 -#: ../src/verbs.cpp:3219 +#: ../src/ui/dialog/align-and-distribute.cpp:933 ../src/verbs.cpp:3242 +#: ../src/verbs.cpp:3243 msgid "Align right edges of objects to the left edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:936 ../src/verbs.cpp:3220 -#: ../src/verbs.cpp:3221 +#: ../src/ui/dialog/align-and-distribute.cpp:936 ../src/verbs.cpp:3244 +#: ../src/verbs.cpp:3245 msgid "Align left edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:939 ../src/verbs.cpp:3222 -#: ../src/verbs.cpp:3223 +#: ../src/ui/dialog/align-and-distribute.cpp:939 ../src/verbs.cpp:3246 +#: ../src/verbs.cpp:3247 msgid "Center on vertical axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:942 ../src/verbs.cpp:3224 -#: ../src/verbs.cpp:3225 +#: ../src/ui/dialog/align-and-distribute.cpp:942 ../src/verbs.cpp:3248 +#: ../src/verbs.cpp:3249 msgid "Align right sides" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:945 ../src/verbs.cpp:3226 -#: ../src/verbs.cpp:3227 +#: ../src/ui/dialog/align-and-distribute.cpp:945 ../src/verbs.cpp:3250 +#: ../src/verbs.cpp:3251 msgid "Align left edges of objects to the right edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:948 ../src/verbs.cpp:3228 -#: ../src/verbs.cpp:3229 +#: ../src/ui/dialog/align-and-distribute.cpp:948 ../src/verbs.cpp:3252 +#: ../src/verbs.cpp:3253 msgid "Align bottom edges of objects to the top edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:951 ../src/verbs.cpp:3230 -#: ../src/verbs.cpp:3231 +#: ../src/ui/dialog/align-and-distribute.cpp:951 ../src/verbs.cpp:3254 +#: ../src/verbs.cpp:3255 msgid "Align top edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:954 ../src/verbs.cpp:3232 -#: ../src/verbs.cpp:3233 +#: ../src/ui/dialog/align-and-distribute.cpp:954 ../src/verbs.cpp:3256 +#: ../src/verbs.cpp:3257 msgid "Center on horizontal axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:957 ../src/verbs.cpp:3234 -#: ../src/verbs.cpp:3235 +#: ../src/ui/dialog/align-and-distribute.cpp:957 ../src/verbs.cpp:3258 +#: ../src/verbs.cpp:3259 msgid "Align bottom edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:960 ../src/verbs.cpp:3236 -#: ../src/verbs.cpp:3237 +#: ../src/ui/dialog/align-and-distribute.cpp:960 ../src/verbs.cpp:3260 +#: ../src/verbs.cpp:3261 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "" @@ -14228,8 +14341,8 @@ msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:1059 #: ../src/ui/dialog/document-properties.cpp:145 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1486 -#: ../src/widgets/desktop-widget.cpp:1984 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1469 +#: ../src/widgets/desktop-widget.cpp:1981 #: ../share/extensions/empty_page.inx.h:1 #: ../share/extensions/voronoi2svg.inx.h:10 msgid "Page" @@ -14261,15 +14374,15 @@ msgid "Profile name:" msgstr "" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:54 -#: ../src/ui/dialog/guides.cpp:160 ../src/verbs.cpp:2627 +#: ../src/ui/dialog/guides.cpp:160 ../src/verbs.cpp:2647 msgid "_Delete" msgstr "" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:59 -#: ../src/ui/dialog/export.cpp:1300 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1053 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 -#: ../src/ui/dialog/input.cpp:914 ../src/verbs.cpp:2565 +#: ../src/ui/dialog/export.cpp:1297 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1040 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1583 +#: ../src/ui/dialog/input.cpp:914 ../src/verbs.cpp:2585 #: ../src/widgets/desktop-widget.cpp:1090 msgid "_Save" msgstr "" @@ -14944,34 +15057,34 @@ msgstr "" msgid "Select one object whose tiled clones to remove." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2013 +#: ../src/ui/dialog/clonetiler.cpp:2011 msgid "Delete tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2066 +#: ../src/ui/dialog/clonetiler.cpp:2064 msgid "" "If you want to clone several objects, group them and clone the " "group." msgstr "" #. set statusbar text -#: ../src/ui/dialog/clonetiler.cpp:2074 +#: ../src/ui/dialog/clonetiler.cpp:2072 msgid "Creating tiled clones..." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2490 +#: ../src/ui/dialog/clonetiler.cpp:2488 msgid "Create tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2683 +#: ../src/ui/dialog/clonetiler.cpp:2680 msgid "Per row:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2697 +#: ../src/ui/dialog/clonetiler.cpp:2694 msgid "Per column:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2705 +#: ../src/ui/dialog/clonetiler.cpp:2702 msgid "Randomize:" msgstr "" @@ -15272,11 +15385,11 @@ msgstr "" msgid "Remove selected grid." msgstr "" -#: ../src/ui/dialog/document-properties.cpp:146 ../src/widgets/toolbox.cpp:1398 +#: ../src/ui/dialog/document-properties.cpp:146 ../src/widgets/toolbox.cpp:1393 msgid "Guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:148 ../src/verbs.cpp:3030 +#: ../src/ui/dialog/document-properties.cpp:148 ../src/verbs.cpp:3054 msgid "Snap" msgstr "" @@ -15328,7 +15441,7 @@ msgstr "" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:520 ../src/verbs.cpp:3202 +#: ../src/ui/dialog/document-properties.cpp:520 ../src/verbs.cpp:3226 msgid "Link Color Profile" msgstr "" @@ -15384,7 +15497,7 @@ msgstr "" #: ../src/ui/dialog/document-properties.cpp:777 #: ../src/ui/dialog/document-properties.cpp:842 -#: ../src/ui/widget/selected-style.cpp:361 +#: ../src/ui/widget/selected-style.cpp:359 msgid "Remove" msgstr "" @@ -15397,7 +15510,7 @@ msgid "Embedded script files:" msgstr "" #: ../src/ui/dialog/document-properties.cpp:839 -#: ../src/ui/dialog/objects.cpp:1920 +#: ../src/ui/dialog/objects.cpp:1924 msgid "New" msgstr "" @@ -15471,230 +15584,230 @@ msgstr "" msgid "Changed default display unit" msgstr "" -#: ../src/ui/dialog/export.cpp:124 ../src/verbs.cpp:3005 +#: ../src/ui/dialog/export.cpp:120 ../src/verbs.cpp:3029 msgid "_Page" msgstr "" -#: ../src/ui/dialog/export.cpp:124 ../src/verbs.cpp:3009 +#: ../src/ui/dialog/export.cpp:120 ../src/verbs.cpp:3033 msgid "_Drawing" msgstr "" -#: ../src/ui/dialog/export.cpp:124 ../src/verbs.cpp:3011 +#: ../src/ui/dialog/export.cpp:120 ../src/verbs.cpp:3035 msgid "_Selection" msgstr "" -#: ../src/ui/dialog/export.cpp:124 +#: ../src/ui/dialog/export.cpp:120 msgid "_Custom" msgstr "" -#: ../src/ui/dialog/export.cpp:142 ../src/widgets/measure-toolbar.cpp:286 -#: ../src/widgets/measure-toolbar.cpp:294 +#: ../src/ui/dialog/export.cpp:138 ../src/widgets/measure-toolbar.cpp:304 +#: ../src/widgets/measure-toolbar.cpp:312 #: ../share/extensions/render_gears.inx.h:6 msgid "Units:" msgstr "" -#: ../src/ui/dialog/export.cpp:144 +#: ../src/ui/dialog/export.cpp:140 msgid "_Export As..." msgstr "" -#: ../src/ui/dialog/export.cpp:147 +#: ../src/ui/dialog/export.cpp:143 msgid "B_atch export all selected objects" msgstr "" -#: ../src/ui/dialog/export.cpp:147 +#: ../src/ui/dialog/export.cpp:143 msgid "" "Export each selected object into its own PNG file, using export hints if any " "(caution, overwrites without asking!)" msgstr "" -#: ../src/ui/dialog/export.cpp:148 +#: ../src/ui/dialog/export.cpp:144 msgid "Use interlacing" msgstr "" -#: ../src/ui/dialog/export.cpp:148 +#: ../src/ui/dialog/export.cpp:144 msgid "" "Enables ADAM7 interlacing for PNG output. This results in slightly heavier " "images, but big images will look better sooner when loading the file" msgstr "" -#: ../src/ui/dialog/export.cpp:149 +#: ../src/ui/dialog/export.cpp:145 msgid "Bit depth" msgstr "" -#: ../src/ui/dialog/export.cpp:151 +#: ../src/ui/dialog/export.cpp:147 msgid "Compression" msgstr "" -#: ../src/ui/dialog/export.cpp:153 +#: ../src/ui/dialog/export.cpp:149 msgid "pHYs dpi" msgstr "" -#: ../src/ui/dialog/export.cpp:158 +#: ../src/ui/dialog/export.cpp:154 msgid "Hide all except selected" msgstr "" -#: ../src/ui/dialog/export.cpp:158 +#: ../src/ui/dialog/export.cpp:154 msgid "In the exported image, hide all objects except those that are selected" msgstr "" -#: ../src/ui/dialog/export.cpp:159 +#: ../src/ui/dialog/export.cpp:155 msgid "Close when complete" msgstr "" -#: ../src/ui/dialog/export.cpp:159 +#: ../src/ui/dialog/export.cpp:155 msgid "Once the export completes, close this dialog" msgstr "" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Export area" msgstr "" -#: ../src/ui/dialog/export.cpp:210 +#: ../src/ui/dialog/export.cpp:206 msgid "_x0:" msgstr "" -#: ../src/ui/dialog/export.cpp:214 +#: ../src/ui/dialog/export.cpp:210 msgid "x_1:" msgstr "" -#: ../src/ui/dialog/export.cpp:218 +#: ../src/ui/dialog/export.cpp:214 msgid "Wid_th:" msgstr "" -#: ../src/ui/dialog/export.cpp:222 +#: ../src/ui/dialog/export.cpp:218 msgid "_y0:" msgstr "" -#: ../src/ui/dialog/export.cpp:226 +#: ../src/ui/dialog/export.cpp:222 msgid "y_1:" msgstr "" -#: ../src/ui/dialog/export.cpp:230 +#: ../src/ui/dialog/export.cpp:226 msgid "Hei_ght:" msgstr "" -#: ../src/ui/dialog/export.cpp:245 +#: ../src/ui/dialog/export.cpp:241 msgid "Image size" msgstr "" -#: ../src/ui/dialog/export.cpp:257 ../src/ui/dialog/export.cpp:268 +#: ../src/ui/dialog/export.cpp:253 ../src/ui/dialog/export.cpp:264 msgid "pixels at" msgstr "" -#: ../src/ui/dialog/export.cpp:263 +#: ../src/ui/dialog/export.cpp:259 msgid "dp_i" msgstr "" -#: ../src/ui/dialog/export.cpp:268 ../src/ui/dialog/transformation.cpp:69 +#: ../src/ui/dialog/export.cpp:264 ../src/ui/dialog/transformation.cpp:69 #: ../src/ui/widget/page-sizer.cpp:221 msgid "_Height:" msgstr "" -#: ../src/ui/dialog/export.cpp:276 -#: ../src/ui/dialog/inkscape-preferences.cpp:1478 -#: ../src/ui/dialog/inkscape-preferences.cpp:1482 -#: ../src/ui/dialog/inkscape-preferences.cpp:1506 +#: ../src/ui/dialog/export.cpp:272 +#: ../src/ui/dialog/inkscape-preferences.cpp:1535 +#: ../src/ui/dialog/inkscape-preferences.cpp:1539 +#: ../src/ui/dialog/inkscape-preferences.cpp:1563 msgid "dpi" msgstr "" -#: ../src/ui/dialog/export.cpp:284 +#: ../src/ui/dialog/export.cpp:280 msgid "_Filename" msgstr "" -#: ../src/ui/dialog/export.cpp:322 +#: ../src/ui/dialog/export.cpp:318 msgid "_Export" msgstr "" -#: ../src/ui/dialog/export.cpp:324 +#: ../src/ui/dialog/export.cpp:320 msgid "Export the bitmap file with these settings" msgstr "" #. Advanced -#: ../src/ui/dialog/export.cpp:330 +#: ../src/ui/dialog/export.cpp:326 msgid "Advanced" msgstr "" -#: ../src/ui/dialog/export.cpp:344 +#: ../src/ui/dialog/export.cpp:340 msgid "" "Will force-set the physical dpi for the png file. Set this to 72 if you're " "planning to work on your png with Photoshop" msgstr "" -#: ../src/ui/dialog/export.cpp:484 +#: ../src/ui/dialog/export.cpp:480 msgid "bitmap" msgstr "" -#: ../src/ui/dialog/export.cpp:591 +#: ../src/ui/dialog/export.cpp:587 #, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" msgstr[0] "" msgstr[1] "" -#: ../src/ui/dialog/export.cpp:907 +#: ../src/ui/dialog/export.cpp:903 msgid "Export in progress" msgstr "" -#: ../src/ui/dialog/export.cpp:1008 +#: ../src/ui/dialog/export.cpp:1005 msgid "No items selected." msgstr "" -#: ../src/ui/dialog/export.cpp:1012 ../src/ui/dialog/export.cpp:1014 +#: ../src/ui/dialog/export.cpp:1009 ../src/ui/dialog/export.cpp:1011 msgid "Exporting %1 files" msgstr "" -#: ../src/ui/dialog/export.cpp:1056 ../src/ui/dialog/export.cpp:1058 +#: ../src/ui/dialog/export.cpp:1053 ../src/ui/dialog/export.cpp:1055 #, c-format msgid "Exporting file %s..." msgstr "" -#: ../src/ui/dialog/export.cpp:1069 ../src/ui/dialog/export.cpp:1164 +#: ../src/ui/dialog/export.cpp:1066 ../src/ui/dialog/export.cpp:1161 #, c-format msgid "Could not export to filename %s.\n" msgstr "" -#: ../src/ui/dialog/export.cpp:1072 +#: ../src/ui/dialog/export.cpp:1069 #, c-format msgid "Could not export to filename %s." msgstr "" -#: ../src/ui/dialog/export.cpp:1087 +#: ../src/ui/dialog/export.cpp:1084 #, c-format msgid "Successfully exported %d files from %d selected items." msgstr "" -#: ../src/ui/dialog/export.cpp:1098 +#: ../src/ui/dialog/export.cpp:1095 msgid "You have to enter a filename." msgstr "" -#: ../src/ui/dialog/export.cpp:1099 +#: ../src/ui/dialog/export.cpp:1096 msgid "You have to enter a filename" msgstr "" -#: ../src/ui/dialog/export.cpp:1114 +#: ../src/ui/dialog/export.cpp:1111 msgid "The chosen area to be exported is invalid." msgstr "" -#: ../src/ui/dialog/export.cpp:1115 +#: ../src/ui/dialog/export.cpp:1112 msgid "The chosen area to be exported is invalid" msgstr "" -#: ../src/ui/dialog/export.cpp:1130 +#: ../src/ui/dialog/export.cpp:1127 #, c-format msgid "Directory %s does not exist or is not a directory.\n" msgstr "" #. TRANSLATORS: %1 will be the filename, %2 the width, and %3 the height of the image -#: ../src/ui/dialog/export.cpp:1144 ../src/ui/dialog/export.cpp:1146 +#: ../src/ui/dialog/export.cpp:1141 ../src/ui/dialog/export.cpp:1143 msgid "Exporting %1 (%2 x %3)" msgstr "" -#: ../src/ui/dialog/export.cpp:1175 +#: ../src/ui/dialog/export.cpp:1172 #, c-format msgid "Drawing exported to %s." msgstr "" -#: ../src/ui/dialog/export.cpp:1179 +#: ../src/ui/dialog/export.cpp:1176 msgid "Export aborted." msgstr "" @@ -15702,8 +15815,8 @@ msgstr "" msgid "Information" msgstr "" -#: ../src/ui/dialog/extension-editor.cpp:79 ../src/verbs.cpp:304 -#: ../src/verbs.cpp:323 ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../src/ui/dialog/extension-editor.cpp:79 ../src/verbs.cpp:307 +#: ../src/verbs.cpp:326 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 #: ../share/extensions/color_randomize.inx.h:11 #: ../share/extensions/dots.inx.h:7 @@ -15723,7 +15836,7 @@ msgstr "" #: ../share/extensions/gcodetools_tools_library.inx.h:18 #: ../share/extensions/generate_voronoi.inx.h:5 #: ../share/extensions/gimp_xcf.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:29 +#: ../share/extensions/interp_att_g.inx.h:32 #: ../share/extensions/jessyInk_autoTexts.inx.h:8 #: ../share/extensions/jessyInk_effects.inx.h:13 #: ../share/extensions/jessyInk_export.inx.h:7 @@ -15755,97 +15868,97 @@ msgstr "" msgid "Parameters" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:531 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:527 msgid "too large for preview" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:617 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:613 msgid "Enable preview" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:739 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:729 msgid "_Open" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:760 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:772 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:774 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:781 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:795 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:750 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:762 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:764 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:771 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:785 #: ../src/ui/dialog/filedialogimpl-win32.cpp:267 #: ../src/ui/dialog/filedialogimpl-win32.cpp:398 msgid "All Files" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:778 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:792 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:768 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:782 #: ../src/ui/dialog/filedialogimpl-win32.cpp:268 msgid "All Inkscape Files" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:785 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:798 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:775 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:788 #: ../src/ui/dialog/filedialogimpl-win32.cpp:269 msgid "All Images" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:788 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:801 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:778 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:791 #: ../src/ui/dialog/filedialogimpl-win32.cpp:270 msgid "All Vectors" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:791 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:804 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:781 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:794 #: ../src/ui/dialog/filedialogimpl-win32.cpp:271 msgid "All Bitmaps" msgstr "" #. ###### File options #. ###### Do we want the .xxx extension automatically added? -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:997 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1549 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:984 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1532 msgid "Append filename extension automatically" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1164 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1417 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1151 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1404 msgid "Guess from extension" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1436 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1423 msgid "Left edge of source" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1437 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1424 msgid "Top edge of source" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1438 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1425 msgid "Right edge of source" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1439 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1426 msgid "Bottom edge of source" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1440 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1427 msgid "Source width" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1441 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1428 msgid "Source height" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1442 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1429 msgid "Destination width" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1443 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1430 msgid "Destination height" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1444 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1431 msgid "Resolution (dots per inch)" msgstr "" @@ -15853,32 +15966,32 @@ msgstr "" #. ## EXTRA WIDGET -- SOURCE SIDE #. ######################################### #. ##### Export options buttons/spinners, etc -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1482 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1465 #: ../share/extensions/docinfo.inx.h:4 ../share/extensions/dpi90to96.inx.h:2 #: ../share/extensions/dpi96to90.inx.h:2 msgid "Document" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1490 ../src/verbs.cpp:170 -#: ../src/widgets/desktop-widget.cpp:1992 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1473 ../src/verbs.cpp:173 +#: ../src/widgets/desktop-widget.cpp:1989 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1494 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1477 msgctxt "Export dialog" msgid "Custom" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1514 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1497 msgid "Source" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1534 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1517 msgid "Cairo" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1520 msgid "Antialias" msgstr "" @@ -16035,8 +16148,8 @@ msgstr "" #. File #. Tag #: ../src/ui/dialog/filter-effects-dialog.cpp:1322 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:987 ../src/verbs.cpp:2559 -#: ../src/verbs.cpp:2889 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:987 ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2913 msgid "_New" msgstr "" @@ -16068,75 +16181,75 @@ msgstr "" msgid "Duplicate filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1762 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1761 msgid "_Effect" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1772 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1771 msgid "Connections" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1911 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1910 msgid "Remove filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2438 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2439 msgid "Remove merge node" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2560 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2561 msgid "Reorder filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2615 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2616 msgid "Add Effect:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2616 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2617 msgid "No effect selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2617 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2618 msgid "No filter selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2680 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2681 msgid "Effect parameters" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2681 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2682 msgid "Filter General Settings" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2741 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 msgid "Coordinates:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2741 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 msgid "X coordinate of the left corners of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2741 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 msgid "Y coordinate of the upper corners of filter effects region" msgstr "" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Dimensions:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Width of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2742 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Height of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2748 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2749 msgid "" "Indicates the type of matrix operation. The keyword 'matrix' indicates that " "a full 5x4 matrix of values will be provided. The other keywords represent " @@ -16144,96 +16257,96 @@ msgid "" "performed without specifying a complete matrix." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2749 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2750 msgid "Value(s):" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2753 -#: ../src/widgets/desktop-widget.cpp:648 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2754 +#: ../src/widgets/desktop-widget.cpp:649 msgid "R:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2754 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2755 #: ../src/ui/widget/color-icc-selector.cpp:158 msgid "G:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2755 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2756 msgid "B:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2756 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2757 msgid "A:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2759 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2799 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2760 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2800 msgid "Operator:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2760 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2761 msgid "K1:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2760 #: ../src/ui/dialog/filter-effects-dialog.cpp:2761 #: ../src/ui/dialog/filter-effects-dialog.cpp:2762 #: ../src/ui/dialog/filter-effects-dialog.cpp:2763 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2764 msgid "" "If the arithmetic operation is chosen, each result pixel is computed using " "the formula k1*i1*i2 + k2*i1 + k3*i2 + k4 where i1 and i2 are the pixel " "values of the first and second inputs respectively." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2761 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2762 msgid "K2:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2762 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2763 msgid "K3:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2763 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2764 msgid "K4:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2766 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 msgid "Size:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2766 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 msgid "width of the convolve matrix" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2766 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 msgid "height of the convolve matrix" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2768 #: ../src/ui/dialog/object-attributes.cpp:45 msgid "Target:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2768 msgid "" "X coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2767 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2768 msgid "" "Y coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." msgstr "" #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2769 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2770 msgid "Kernel:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2769 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2770 msgid "" "This matrix describes the convolve operation that is applied to the input " "image in order to calculate the pixel colors at the output. Different " @@ -16243,11 +16356,11 @@ msgid "" "would lead to a common blur effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2771 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2772 msgid "Divisor:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2771 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2772 msgid "" "After applying the kernelMatrix to the input image to yield a number, that " "number is divided by divisor to yield the final destination color value. A " @@ -16255,191 +16368,191 @@ msgid "" "effect on the overall color intensity of the result." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2772 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2773 msgid "Bias:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2772 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2773 msgid "" "This value is added to each component. This is useful to define a constant " "value as the zero response of the filter." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2773 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2774 msgid "Edge Mode:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2773 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2774 msgid "" "Determines how to extend the input image as necessary with color values so " "that the matrix operations can be applied when the kernel is positioned at " "or near the edge of the input image." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2774 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2811 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2775 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2812 msgid "Preserve Alpha" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2774 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2811 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2775 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2812 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2778 msgid "Diffuse Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2816 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2778 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2817 msgid "Defines the color of the light source" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2778 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2817 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2779 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2818 msgid "Surface Scale:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2778 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2817 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2779 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2818 msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2779 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2818 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2780 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2819 msgid "Constant:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2779 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2818 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2780 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2819 msgid "This constant affects the Phong lighting model." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2780 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2820 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2781 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2821 msgid "Kernel Unit Length:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2784 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2785 msgid "This defines the intensity of the displacement effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2785 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2786 msgid "X displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2785 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2786 msgid "Color component that controls the displacement in the X direction" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2786 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2787 msgid "Y displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2786 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2787 msgid "Color component that controls the displacement in the Y direction" msgstr "" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2789 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2790 msgid "Flood Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2789 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2790 msgid "The whole filter region will be filled with this color." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2794 msgid "Standard Deviation:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2794 msgid "The standard deviation for the blur operation." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2799 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2800 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2803 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2804 msgid "Source of Image:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2812 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2813 msgid "Delta X:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2812 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2813 msgid "This is how far the input image gets shifted to the right" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2813 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2814 msgid "Delta Y:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2813 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2814 msgid "This is how far the input image gets shifted downwards" msgstr "" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2816 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2817 msgid "Specular Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2819 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2820 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2819 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2820 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2828 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2829 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2829 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2830 msgid "Base Frequency:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2830 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2831 msgid "Octaves:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2831 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2832 msgid "Seed:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2831 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2832 msgid "The starting number for the pseudo random number generator." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2844 msgid "Add filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2859 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2862 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "" "The feColorMatrix filter primitive applies a matrix transformation to " "color of each rendered pixel. This allows for effects like turning object to " "grayscale, modifying color saturation and changing color hue." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 msgid "" "The feComponentTransfer filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -16447,7 +16560,7 @@ msgid "" "adjustment, color balance, and thresholding." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 msgid "" "The feComposite filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -16455,7 +16568,7 @@ msgid "" "between the corresponding pixel values of the images." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2875 msgid "" "The feConvolveMatrix lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -16464,7 +16577,7 @@ msgid "" "is faster and resolution-independent." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -16472,7 +16585,7 @@ msgid "" "opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "" "The feDisplacementMap filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -16480,26 +16593,26 @@ msgid "" "effects." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2886 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "" "The feFlood filter primitive fills the region with a given color and " "opacity. It is usually used as an input to other filters to apply color to " "a graphic." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2891 msgid "" "The feGaussianBlur filter primitive uniformly blurs its input. It is " "commonly used together with feOffset to create a drop shadow effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "" "The feImage filter primitive fills the region with an external image " "or another part of the document." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2898 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "" "The feMerge filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -16507,21 +16620,21 @@ msgid "" "in 'normal' mode or several feComposite primitives in 'over' mode." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2902 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "" "The feMorphology filter primitive provides erode and dilate effects. " "For single-color objects erode makes the object thinner and dilate makes it " "thicker." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 msgid "" "The feOffset filter primitive offsets the image by an user-defined " "amount. For example, this is useful for drop shadows, where the shadow is in " "a slightly different position than the actual object." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2910 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2911 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -16529,24 +16642,24 @@ msgid "" "lower opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2914 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2915 msgid "" "The feTile filter primitive tiles a region with an input graphic. The " "source tile is defined by the filter primitive subregion of the input." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 msgid "" "The feTurbulence filter primitive renders Perlin noise. This kind of " "noise is useful in simulating several nature phenomena like clouds, fire and " "smoke and in generating complex textures like marble or granite." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2938 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2939 msgid "Duplicate filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3018 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3019 msgid "Set filter primitive attribute" msgstr "" @@ -16591,7 +16704,7 @@ msgid "Limit search to the current selection" msgstr "" #: ../src/ui/dialog/find.cpp:71 ../src/ui/dialog/text-edit.cpp:61 -#: ../share/ui/menus.xml.h:17 +#: ../share/ui/menus.xml.h:18 msgid "_Text" msgstr "" @@ -16735,7 +16848,7 @@ msgstr "" msgid "Search spirals" msgstr "" -#: ../src/ui/dialog/find.cpp:96 ../src/widgets/toolbox.cpp:1299 +#: ../src/ui/dialog/find.cpp:96 ../src/widgets/toolbox.cpp:1294 msgid "Paths" msgstr "" @@ -17608,78 +17721,78 @@ msgstr "" msgid "Append text" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:340 +#: ../src/ui/dialog/grid-arrange-tab.cpp:338 msgid "Arrange in a grid" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:568 +#: ../src/ui/dialog/grid-arrange-tab.cpp:566 #: ../src/ui/dialog/object-attributes.cpp:63 #: ../src/ui/dialog/object-attributes.cpp:72 -#: ../src/ui/widget/page-sizer.cpp:230 ../src/widgets/desktop-widget.cpp:635 +#: ../src/ui/widget/page-sizer.cpp:232 ../src/widgets/desktop-widget.cpp:636 #: ../src/widgets/node-toolbar.cpp:579 msgid "X:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:568 +#: ../src/ui/dialog/grid-arrange-tab.cpp:566 msgid "Horizontal spacing between columns." msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:569 +#: ../src/ui/dialog/grid-arrange-tab.cpp:567 #: ../src/ui/dialog/object-attributes.cpp:64 #: ../src/ui/dialog/object-attributes.cpp:73 -#: ../src/ui/widget/page-sizer.cpp:231 ../src/widgets/desktop-widget.cpp:636 +#: ../src/ui/widget/page-sizer.cpp:233 ../src/widgets/desktop-widget.cpp:637 #: ../src/widgets/node-toolbar.cpp:597 msgid "Y:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:569 +#: ../src/ui/dialog/grid-arrange-tab.cpp:567 msgid "Vertical spacing between rows." msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:611 +#: ../src/ui/dialog/grid-arrange-tab.cpp:609 msgid "_Rows:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:621 +#: ../src/ui/dialog/grid-arrange-tab.cpp:619 msgid "Number of rows" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:625 +#: ../src/ui/dialog/grid-arrange-tab.cpp:623 msgid "Equal _height" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:636 +#: ../src/ui/dialog/grid-arrange-tab.cpp:634 msgid "If not set, each row has the height of the tallest object in it" msgstr "" #. #### Number of columns #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:653 +#: ../src/ui/dialog/grid-arrange-tab.cpp:651 msgid "_Columns:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:663 +#: ../src/ui/dialog/grid-arrange-tab.cpp:661 msgid "Number of columns" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:667 +#: ../src/ui/dialog/grid-arrange-tab.cpp:665 msgid "Equal _width" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:677 +#: ../src/ui/dialog/grid-arrange-tab.cpp:675 msgid "If not set, each column has the width of the widest object in it" msgstr "" #. Anchor selection widget -#: ../src/ui/dialog/grid-arrange-tab.cpp:689 +#: ../src/ui/dialog/grid-arrange-tab.cpp:687 msgid "Alignment:" msgstr "" #. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:699 +#: ../src/ui/dialog/grid-arrange-tab.cpp:697 msgid "_Fit into selection box" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:706 +#: ../src/ui/dialog/grid-arrange-tab.cpp:704 msgid "_Set spacing:" msgstr "" @@ -17739,372 +17852,416 @@ msgstr "" msgid "Current: %s" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:152 +#: ../src/ui/dialog/icon-preview.cpp:151 #, c-format msgid "%d x %d" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:164 +#: ../src/ui/dialog/icon-preview.cpp:163 msgid "Magnified:" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:232 +#: ../src/ui/dialog/icon-preview.cpp:231 msgid "Actual Size:" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:237 +#: ../src/ui/dialog/icon-preview.cpp:236 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:239 +#: ../src/ui/dialog/icon-preview.cpp:238 msgid "Selection only or whole document" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:170 +#: ../src/ui/dialog/inkscape-preferences.cpp:172 msgid "Show selection cue" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:171 +#: ../src/ui/dialog/inkscape-preferences.cpp:173 msgid "" "Whether selected objects display a selection cue (the same as in selector)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:177 +#: ../src/ui/dialog/inkscape-preferences.cpp:179 msgid "Enable gradient editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:178 +#: ../src/ui/dialog/inkscape-preferences.cpp:180 msgid "Whether selected objects display gradient editing controls" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:183 +#: ../src/ui/dialog/inkscape-preferences.cpp:185 msgid "Conversion to guides uses edges instead of bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:184 +#: ../src/ui/dialog/inkscape-preferences.cpp:186 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:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:193 msgid "Ctrl+click _dot size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:193 msgid "times current stroke width" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:192 +#: ../src/ui/dialog/inkscape-preferences.cpp:194 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:200 +#: ../src/ui/dialog/inkscape-preferences.cpp:202 msgid "Base simplify:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:200 +#: ../src/ui/dialog/inkscape-preferences.cpp:202 msgid "on dynamic LPE simplify" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:201 +#: ../src/ui/dialog/inkscape-preferences.cpp:203 msgid "Base simplify of dynamic LPE based simplify" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:216 +#: ../src/ui/dialog/inkscape-preferences.cpp:211 +msgid "Pressure sensibility:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:211 +#: ../src/ui/dialog/inkscape-preferences.cpp:220 +#: ../src/ui/dialog/inkscape-preferences.cpp:229 +msgid "on tablet usage" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:212 +msgid "Pressure sensibility, 12 is the default value" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:220 +msgid "Pressure min knot distance factor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:221 +msgid "" +"Min distance between knots, this is a factor value computed with other " +"parameters, 135 is the default one" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:229 +msgid "Pressure inputs difference for made knots:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:230 +msgid "" +"Diference between input pressure to make a powerstroke knot, this is a " +"factor value computed with other parameters, 1 is the default value" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:237 +msgid "Use optimiced powerstroke values instead the default ones:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:238 +msgid "" +"Use optimized powerstroke parameters values in pencil tool por pressure " +"inputs instead the default ones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:252 msgid "No objects selected to take the style from." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:225 +#: ../src/ui/dialog/inkscape-preferences.cpp:261 msgid "" "More than one object selected. Cannot take style from multiple " "objects." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:261 +#: ../src/ui/dialog/inkscape-preferences.cpp:297 msgid "Style of new objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:263 +#: ../src/ui/dialog/inkscape-preferences.cpp:299 msgid "Last used style" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:265 +#: ../src/ui/dialog/inkscape-preferences.cpp:301 msgid "Apply the style you last set on an object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:269 +#: ../src/ui/dialog/inkscape-preferences.cpp:305 msgid "This tool's own style:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:273 +#: ../src/ui/dialog/inkscape-preferences.cpp:309 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:277 +#: ../src/ui/dialog/inkscape-preferences.cpp:313 msgid "Take from selection" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:286 +#: ../src/ui/dialog/inkscape-preferences.cpp:322 msgid "This tool's style of new objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:293 +#: ../src/ui/dialog/inkscape-preferences.cpp:329 msgid "Remember the style of the (first) selected object as this tool's style" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:298 +#: ../src/ui/dialog/inkscape-preferences.cpp:334 msgid "Tools" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:301 +#: ../src/ui/dialog/inkscape-preferences.cpp:337 msgid "Bounding box to use" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:302 +#: ../src/ui/dialog/inkscape-preferences.cpp:338 msgid "Visual bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:304 +#: ../src/ui/dialog/inkscape-preferences.cpp:340 msgid "This bounding box includes stroke width, markers, filter margins, etc." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:305 +#: ../src/ui/dialog/inkscape-preferences.cpp:341 msgid "Geometric bounding box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:307 +#: ../src/ui/dialog/inkscape-preferences.cpp:343 msgid "This bounding box includes only the bare path" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:309 +#: ../src/ui/dialog/inkscape-preferences.cpp:345 msgid "Conversion to guides" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:310 +#: ../src/ui/dialog/inkscape-preferences.cpp:346 msgid "Keep objects after conversion to guides" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:312 +#: ../src/ui/dialog/inkscape-preferences.cpp:348 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:313 +#: ../src/ui/dialog/inkscape-preferences.cpp:349 msgid "Treat groups as a single object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:315 +#: ../src/ui/dialog/inkscape-preferences.cpp:351 msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:317 +#: ../src/ui/dialog/inkscape-preferences.cpp:353 msgid "Average all sketches" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:318 +#: ../src/ui/dialog/inkscape-preferences.cpp:354 msgid "Width is in absolute units" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:319 +#: ../src/ui/dialog/inkscape-preferences.cpp:355 msgid "Select new path" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:320 +#: ../src/ui/dialog/inkscape-preferences.cpp:356 msgid "Don't attach connectors to text objects" msgstr "" #. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:323 +#: ../src/ui/dialog/inkscape-preferences.cpp:359 msgid "Selector" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:328 +#: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "When transforming, show" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:329 +#: ../src/ui/dialog/inkscape-preferences.cpp:365 msgid "Objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:331 +#: ../src/ui/dialog/inkscape-preferences.cpp:367 msgid "Show the actual objects when moving or transforming" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:332 +#: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Box outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:334 +#: ../src/ui/dialog/inkscape-preferences.cpp:370 msgid "Show only a box outline of the objects when moving or transforming" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:335 +#: ../src/ui/dialog/inkscape-preferences.cpp:371 msgid "Per-object selection cue" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:336 +#: ../src/ui/dialog/inkscape-preferences.cpp:372 msgctxt "Selection cue" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:338 +#: ../src/ui/dialog/inkscape-preferences.cpp:374 msgid "No per-object selection indication" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:339 +#: ../src/ui/dialog/inkscape-preferences.cpp:375 msgid "Mark" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:341 +#: ../src/ui/dialog/inkscape-preferences.cpp:377 msgid "Each selected object has a diamond mark in the top left corner" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:342 +#: ../src/ui/dialog/inkscape-preferences.cpp:378 msgid "Box" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:344 +#: ../src/ui/dialog/inkscape-preferences.cpp:380 msgid "Each selected object displays its bounding box" msgstr "" #. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:347 +#: ../src/ui/dialog/inkscape-preferences.cpp:383 msgid "Node" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:350 +#: ../src/ui/dialog/inkscape-preferences.cpp:386 msgid "Path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:351 +#: ../src/ui/dialog/inkscape-preferences.cpp:387 msgid "Path outline color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:352 +#: ../src/ui/dialog/inkscape-preferences.cpp:388 msgid "Selects the color used for showing the path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:353 +#: ../src/ui/dialog/inkscape-preferences.cpp:389 msgid "Always show outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:354 +#: ../src/ui/dialog/inkscape-preferences.cpp:390 msgid "Show outlines for all paths, not only invisible paths" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:355 +#: ../src/ui/dialog/inkscape-preferences.cpp:391 msgid "Update outline when dragging nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:356 +#: ../src/ui/dialog/inkscape-preferences.cpp:392 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:357 +#: ../src/ui/dialog/inkscape-preferences.cpp:393 msgid "Update paths when dragging nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:358 +#: ../src/ui/dialog/inkscape-preferences.cpp:394 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:359 +#: ../src/ui/dialog/inkscape-preferences.cpp:395 msgid "Show path direction on outlines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:360 +#: ../src/ui/dialog/inkscape-preferences.cpp:396 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:361 +#: ../src/ui/dialog/inkscape-preferences.cpp:397 msgid "Show temporary path outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:362 +#: ../src/ui/dialog/inkscape-preferences.cpp:398 msgid "When hovering over a path, briefly flash its outline" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:363 +#: ../src/ui/dialog/inkscape-preferences.cpp:399 msgid "Show temporary outline for selected paths" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:364 +#: ../src/ui/dialog/inkscape-preferences.cpp:400 msgid "Show temporary outline even when a path is selected for editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "_Flash time:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:366 +#: ../src/ui/dialog/inkscape-preferences.cpp:402 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:367 +#: ../src/ui/dialog/inkscape-preferences.cpp:403 msgid "Editing preferences" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:368 +#: ../src/ui/dialog/inkscape-preferences.cpp:404 msgid "Show transform handles for single nodes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:369 +#: ../src/ui/dialog/inkscape-preferences.cpp:405 msgid "Show transform handles even when only a single node is selected" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:370 +#: ../src/ui/dialog/inkscape-preferences.cpp:406 msgid "Deleting nodes preserves shape" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:371 +#: ../src/ui/dialog/inkscape-preferences.cpp:407 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:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:410 msgid "Tweak" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:375 +#: ../src/ui/dialog/inkscape-preferences.cpp:411 msgid "Object paint style" msgstr "" #. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:380 -#: ../src/widgets/desktop-widget.cpp:574 +#: ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/widgets/desktop-widget.cpp:575 msgid "Zoom" msgstr "" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:385 ../src/verbs.cpp:2924 +#: ../src/ui/dialog/inkscape-preferences.cpp:421 ../src/verbs.cpp:2948 msgctxt "ContextVerb" msgid "Measure" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:387 +#: ../src/ui/dialog/inkscape-preferences.cpp:423 msgid "Ignore first and last points" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:388 +#: ../src/ui/dialog/inkscape-preferences.cpp:424 msgid "" "The start and end of the measurement tool's control line will not be " "considered for calculating lengths. Only lengths between actual curve " @@ -18112,980 +18269,1017 @@ msgid "" msgstr "" #. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:391 +#: ../src/ui/dialog/inkscape-preferences.cpp:427 msgid "Shapes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:424 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Pencil pressure" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:466 msgid "Sketch mode" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:426 +#: ../src/ui/dialog/inkscape-preferences.cpp:468 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:429 +#: ../src/ui/dialog/inkscape-preferences.cpp:471 #: ../src/ui/dialog/input.cpp:1311 msgid "Pen" msgstr "" #. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:435 +#: ../src/ui/dialog/inkscape-preferences.cpp:477 msgid "Calligraphy" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:439 +#: ../src/ui/dialog/inkscape-preferences.cpp:481 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:441 +#: ../src/ui/dialog/inkscape-preferences.cpp:483 msgid "" "If on, each newly created object will be selected (deselecting previous " "selection)" msgstr "" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:444 ../src/verbs.cpp:2916 +#: ../src/ui/dialog/inkscape-preferences.cpp:486 ../src/verbs.cpp:2940 msgctxt "ContextVerb" msgid "Text" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:449 +#: ../src/ui/dialog/inkscape-preferences.cpp:491 msgid "Show font samples in the drop-down list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:450 +#: ../src/ui/dialog/inkscape-preferences.cpp:492 msgid "" "Show font samples alongside font names in the drop-down list in Text bar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:452 +#: ../src/ui/dialog/inkscape-preferences.cpp:494 msgid "Show font substitution warning dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:453 +#: ../src/ui/dialog/inkscape-preferences.cpp:495 msgid "" "Show font substitution warning dialog when requested fonts are not available " "on the system" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Pixel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Pica" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Millimeter" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Centimeter" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Inch" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:456 +#: ../src/ui/dialog/inkscape-preferences.cpp:498 msgid "Em square" msgstr "" #. , _("Ex square"), _("Percent") #. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:459 +#: ../src/ui/dialog/inkscape-preferences.cpp:501 msgid "Text units" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:461 +#: ../src/ui/dialog/inkscape-preferences.cpp:503 msgid "Text size unit type:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:462 +#: ../src/ui/dialog/inkscape-preferences.cpp:504 msgid "Set the type of unit used in the text toolbar and text dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:463 +#: ../src/ui/dialog/inkscape-preferences.cpp:505 msgid "Always output text size in pixels (px)" msgstr "" +#. _page_text.add_line( false, "", _font_output_px, "", _("Always convert the text size units above into pixels (px) before saving to file")); +#: ../src/ui/dialog/inkscape-preferences.cpp:508 +msgid "Font directories" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:509 +msgid "Use Inkscape's fonts directory" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:510 +msgid "" +"Load additional fonts from \"fonts\" directory located in Inkscape's global " +"\"share\" directory" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:511 +msgid "Use user's fonts directory" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:512 +msgid "" +"Load additional fonts from \"fonts\" directory located in Inkscape's user " +"configuration directory" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Additional font directories" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:514 +msgid "Load additional fonts from custom locations (one path per line)" +msgstr "" + #. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:469 +#: ../src/ui/dialog/inkscape-preferences.cpp:520 msgid "Spray" msgstr "" #. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:474 +#: ../src/ui/dialog/inkscape-preferences.cpp:525 msgid "Eraser" msgstr "" #. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:479 +#: ../src/ui/dialog/inkscape-preferences.cpp:530 msgid "Paint Bucket" msgstr "" #. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:485 +#: ../src/ui/dialog/inkscape-preferences.cpp:536 #: ../src/widgets/gradient-selector.cpp:134 #: ../src/widgets/gradient-selector.cpp:280 msgid "Gradient" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:487 +#: ../src/ui/dialog/inkscape-preferences.cpp:538 msgid "Prevent sharing of gradient definitions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:489 +#: ../src/ui/dialog/inkscape-preferences.cpp:540 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:490 +#: ../src/ui/dialog/inkscape-preferences.cpp:541 msgid "Use legacy Gradient Editor" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:492 +#: ../src/ui/dialog/inkscape-preferences.cpp:543 msgid "" "When on, the Gradient Edit button in the Fill & Stroke dialog will show the " "legacy Gradient Editor dialog, when off the Gradient Tool will be used" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:495 +#: ../src/ui/dialog/inkscape-preferences.cpp:546 msgid "Linear gradient _angle:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:496 +#: ../src/ui/dialog/inkscape-preferences.cpp:547 msgid "" "Default angle of new linear gradients in degrees (clockwise from horizontal)" msgstr "" #. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:500 +#: ../src/ui/dialog/inkscape-preferences.cpp:551 msgid "Dropper" msgstr "" #. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:505 +#: ../src/ui/dialog/inkscape-preferences.cpp:556 msgid "Connector" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:508 +#: ../src/ui/dialog/inkscape-preferences.cpp:559 msgid "If on, connector attachment points will not be shown for text objects" msgstr "" #. LPETool #. disabled, because the LPETool is not finished yet. -#: ../src/ui/dialog/inkscape-preferences.cpp:513 +#: ../src/ui/dialog/inkscape-preferences.cpp:564 msgid "LPE Tool" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:520 +#: ../src/ui/dialog/inkscape-preferences.cpp:571 msgid "Interface" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:523 +#: ../src/ui/dialog/inkscape-preferences.cpp:574 msgid "System default" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Albanian (sq)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Amharic (am)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Arabic (ar)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Armenian (hy)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Assamese (as)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:524 +#: ../src/ui/dialog/inkscape-preferences.cpp:575 msgid "Azerbaijani (az)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Basque (eu)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Belarusian (be)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Bulgarian (bg)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Bengali (bn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Bengali/Bangladesh (bn_BD)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Bodo (brx)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:525 +#: ../src/ui/dialog/inkscape-preferences.cpp:576 msgid "Breton (br)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Catalan (ca)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Valencian Catalan (ca@valencia)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Chinese/China (zh_CN)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Chinese/Taiwan (zh_TW)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Croatian (hr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:526 +#: ../src/ui/dialog/inkscape-preferences.cpp:577 msgid "Czech (cs)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:578 msgid "Danish (da)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:578 msgid "Dogri (doi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:578 msgid "Dutch (nl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:527 +#: ../src/ui/dialog/inkscape-preferences.cpp:578 msgid "Dzongkha (dz)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:579 msgid "German (de)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:528 +#: ../src/ui/dialog/inkscape-preferences.cpp:579 msgid "Greek (el)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "English (en)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "English/Australia (en_AU)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "English/Canada (en_CA)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "English/Great Britain (en_GB)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "Pig Latin (en_US@piglatin)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "Esperanto (eo)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:529 +#: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "Estonian (et)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:581 msgid "Farsi (fa)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:581 msgid "Finnish (fi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:530 +#: ../src/ui/dialog/inkscape-preferences.cpp:581 msgid "French (fr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:582 msgid "Galician (gl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:531 +#: ../src/ui/dialog/inkscape-preferences.cpp:582 msgid "Gujarati (gu)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:583 msgid "Hebrew (he)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:583 msgid "Hindi (hi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:532 +#: ../src/ui/dialog/inkscape-preferences.cpp:583 msgid "Hungarian (hu)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:584 msgid "Icelandic (is)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:584 msgid "Indonesian (id)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:584 msgid "Irish (ga)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:533 +#: ../src/ui/dialog/inkscape-preferences.cpp:584 msgid "Italian (it)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:534 +#: ../src/ui/dialog/inkscape-preferences.cpp:585 msgid "Japanese (ja)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Kannada (kn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Kashmiri in Perso-Arabic script (ks@aran)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Kashmiri in Devanagari script (ks@deva)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Khmer (km)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Kinyarwanda (rw)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Konkani (kok)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Konkani in Latin script (kok@latin)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:535 +#: ../src/ui/dialog/inkscape-preferences.cpp:586 msgid "Korean (ko)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:587 msgid "Latvian (lv)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:536 +#: ../src/ui/dialog/inkscape-preferences.cpp:587 msgid "Lithuanian (lt)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Macedonian (mk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Maithili (mai)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Malayalam (ml)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Manipuri (mni)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Manipuri in Bengali script (mni@beng)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Marathi (mr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:537 +#: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Mongolian (mn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:538 +#: ../src/ui/dialog/inkscape-preferences.cpp:589 msgid "Nepali (ne)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:538 +#: ../src/ui/dialog/inkscape-preferences.cpp:589 msgid "Norwegian Bokmål (nb)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:538 +#: ../src/ui/dialog/inkscape-preferences.cpp:589 msgid "Norwegian Nynorsk (nn)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:539 +#: ../src/ui/dialog/inkscape-preferences.cpp:590 msgid "Odia (or)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 msgid "Panjabi (pa)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 msgid "Polish (pl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 msgid "Portuguese (pt)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:540 +#: ../src/ui/dialog/inkscape-preferences.cpp:591 msgid "Portuguese/Brazil (pt_BR)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:592 msgid "Romanian (ro)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:541 +#: ../src/ui/dialog/inkscape-preferences.cpp:592 msgid "Russian (ru)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Sanskrit (sa)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Santali (sat)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Santali in Devanagari script (sat@deva)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Serbian (sr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:542 +#: ../src/ui/dialog/inkscape-preferences.cpp:593 msgid "Serbian in Latin script (sr@latin)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Sindhi (sd)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Sindhi in Devanagari script (sd@deva)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Slovak (sk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Slovenian (sl)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Spanish (es)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Spanish/Mexico (es_MX)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:543 +#: ../src/ui/dialog/inkscape-preferences.cpp:594 msgid "Swedish (sv)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Tamil (ta)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Telugu (te)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Thai (th)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:544 +#: ../src/ui/dialog/inkscape-preferences.cpp:595 msgid "Turkish (tr)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:545 +#: ../src/ui/dialog/inkscape-preferences.cpp:596 msgid "Ukrainian (uk)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:545 +#: ../src/ui/dialog/inkscape-preferences.cpp:596 msgid "Urdu (ur)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:546 +#: ../src/ui/dialog/inkscape-preferences.cpp:597 msgid "Vietnamese (vi)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:598 +#: ../src/ui/dialog/inkscape-preferences.cpp:649 msgid "Language (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:599 +#: ../src/ui/dialog/inkscape-preferences.cpp:650 msgid "Set the language for menus and number formats" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgctxt "Icon size" msgid "Larger" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgctxt "Icon size" msgid "Large" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgctxt "Icon size" msgid "Small" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:602 +#: ../src/ui/dialog/inkscape-preferences.cpp:653 msgctxt "Icon size" msgid "Smaller" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:607 +#: ../src/ui/dialog/inkscape-preferences.cpp:658 msgid "Toolbox icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:608 +#: ../src/ui/dialog/inkscape-preferences.cpp:659 msgid "Set the size for the tool icons (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:611 +#: ../src/ui/dialog/inkscape-preferences.cpp:662 msgid "Control bar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:612 +#: ../src/ui/dialog/inkscape-preferences.cpp:663 msgid "" "Set the size for the icons in tools' control bars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:615 +#: ../src/ui/dialog/inkscape-preferences.cpp:666 msgid "Secondary toolbar icon size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "" "Set the size for the icons in secondary toolbars to use (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:619 +#: ../src/ui/dialog/inkscape-preferences.cpp:670 msgid "Work-around color sliders not drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:621 +#: ../src/ui/dialog/inkscape-preferences.cpp:672 msgid "" "When on, will attempt to work around bugs in certain GTK themes drawing " "color sliders" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:626 +#: ../src/ui/dialog/inkscape-preferences.cpp:677 msgid "Clear list" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:629 +#: ../src/ui/dialog/inkscape-preferences.cpp:680 msgid "Maximum documents in Open _Recent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:630 +#: ../src/ui/dialog/inkscape-preferences.cpp:681 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:633 +#: ../src/ui/dialog/inkscape-preferences.cpp:684 msgid "_Zoom correction factor (in %):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:634 +#: ../src/ui/dialog/inkscape-preferences.cpp:685 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:637 +#: ../src/ui/dialog/inkscape-preferences.cpp:688 msgid "Enable dynamic relayout for incomplete sections" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:639 +#: ../src/ui/dialog/inkscape-preferences.cpp:690 msgid "" "When on, will allow dynamic layout of components that are not completely " "finished being refactored" msgstr "" #. show infobox -#: ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:693 msgid "Show filter primitives infobox (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:644 +#: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "" "Show icons and descriptions for the filter primitives available at the " "filter effects dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:647 -#: ../src/ui/dialog/inkscape-preferences.cpp:655 +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Icons only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:647 -#: ../src/ui/dialog/inkscape-preferences.cpp:655 +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Text only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:647 -#: ../src/ui/dialog/inkscape-preferences.cpp:655 +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:706 msgid "Icons and text" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:652 +#: ../src/ui/dialog/inkscape-preferences.cpp:703 msgid "Dockbar style (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:653 +#: ../src/ui/dialog/inkscape-preferences.cpp:704 msgid "" "Selects whether the vertical bars on the dockbar will show text labels, " "icons, or both" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:660 +#: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "Switcher style (requires restart):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:661 +#: ../src/ui/dialog/inkscape-preferences.cpp:712 msgid "" "Selects whether the dockbar switcher will show text labels, icons, or both" msgstr "" #. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:665 +#: ../src/ui/dialog/inkscape-preferences.cpp:716 msgid "Save and restore window geometry for each document" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:666 +#: ../src/ui/dialog/inkscape-preferences.cpp:717 msgid "Remember and use last window's geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:667 +#: ../src/ui/dialog/inkscape-preferences.cpp:718 msgid "Don't save window geometry" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:669 +#: ../src/ui/dialog/inkscape-preferences.cpp:720 msgid "Save and restore dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:670 -#: ../src/ui/dialog/inkscape-preferences.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:721 +#: ../src/ui/dialog/inkscape-preferences.cpp:757 msgid "Don't save dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:672 -#: ../src/ui/dialog/inkscape-preferences.cpp:714 +#: ../src/ui/dialog/inkscape-preferences.cpp:723 +#: ../src/ui/dialog/inkscape-preferences.cpp:765 msgid "Dockable" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:673 -#: ../src/ui/dialog/inkscape-preferences.cpp:716 +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +#: ../src/ui/dialog/inkscape-preferences.cpp:767 msgid "Floating" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:676 +#: ../src/ui/dialog/inkscape-preferences.cpp:727 msgid "Native open/save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:677 +#: ../src/ui/dialog/inkscape-preferences.cpp:728 msgid "GTK open/save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:679 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Dialogs are hidden in taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:680 +#: ../src/ui/dialog/inkscape-preferences.cpp:731 msgid "Save and restore documents viewport" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:681 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Zoom when window is resized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:682 +#: ../src/ui/dialog/inkscape-preferences.cpp:733 msgid "Show close button on dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:683 +#: ../src/ui/dialog/inkscape-preferences.cpp:734 msgctxt "Dialog on top" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:685 +#: ../src/ui/dialog/inkscape-preferences.cpp:736 msgid "Aggressive" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:688 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgctxt "Window size" msgid "Small" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:688 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgctxt "Window size" msgid "Large" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:688 +#: ../src/ui/dialog/inkscape-preferences.cpp:739 msgctxt "Window size" msgid "Maximized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:692 +#: ../src/ui/dialog/inkscape-preferences.cpp:743 msgid "Default window size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:693 +#: ../src/ui/dialog/inkscape-preferences.cpp:744 msgid "Set the default window size" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:696 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 msgid "Saving window geometry (size and position)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:698 +#: ../src/ui/dialog/inkscape-preferences.cpp:749 msgid "Let the window manager determine placement of all windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:700 +#: ../src/ui/dialog/inkscape-preferences.cpp:751 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:702 +#: ../src/ui/dialog/inkscape-preferences.cpp:753 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:704 +#: ../src/ui/dialog/inkscape-preferences.cpp:755 msgid "Saving dialogs status" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:708 +#: ../src/ui/dialog/inkscape-preferences.cpp:759 msgid "" "Save and restore dialogs status (the last open windows dialogs are saved " "when it closes)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:763 msgid "Dialog behavior (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:718 +#: ../src/ui/dialog/inkscape-preferences.cpp:769 msgid "Desktop integration" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:720 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "Use Windows like open and save dialogs" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:722 +#: ../src/ui/dialog/inkscape-preferences.cpp:773 msgid "Use GTK open and save dialogs " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:726 +#: ../src/ui/dialog/inkscape-preferences.cpp:777 msgid "Dialogs on top:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:729 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 msgid "Dialogs are treated as regular windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:731 +#: ../src/ui/dialog/inkscape-preferences.cpp:782 msgid "Dialogs stay on top of document windows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:733 +#: ../src/ui/dialog/inkscape-preferences.cpp:784 msgid "Same as Normal but may work better with some window managers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:736 +#: ../src/ui/dialog/inkscape-preferences.cpp:787 msgid "Dialog Transparency" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:738 +#: ../src/ui/dialog/inkscape-preferences.cpp:789 msgid "_Opacity when focused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:740 +#: ../src/ui/dialog/inkscape-preferences.cpp:791 msgid "Opacity when _unfocused:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:742 +#: ../src/ui/dialog/inkscape-preferences.cpp:793 msgid "_Time of opacity change animation:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:745 +#: ../src/ui/dialog/inkscape-preferences.cpp:796 msgid "Miscellaneous" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:748 +#: ../src/ui/dialog/inkscape-preferences.cpp:799 msgid "Whether dialog windows are to be hidden in the window manager taskbar" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:751 +#: ../src/ui/dialog/inkscape-preferences.cpp:802 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:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:804 msgid "" "Save documents viewport (zoom and panning position). Useful to turn off when " "sharing version controlled files." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:806 msgid "Whether dialog windows have a close button (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:756 +#: ../src/ui/dialog/inkscape-preferences.cpp:807 msgid "Windows" msgstr "" #. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:759 +#: ../src/ui/dialog/inkscape-preferences.cpp:810 msgid "Line color when zooming out" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:762 +#: ../src/ui/dialog/inkscape-preferences.cpp:813 msgid "The gridlines will be shown in minor grid line color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:764 +#: ../src/ui/dialog/inkscape-preferences.cpp:815 msgid "The gridlines will be shown in major grid line color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:766 +#: ../src/ui/dialog/inkscape-preferences.cpp:817 msgid "Default grid settings" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -#: ../src/ui/dialog/inkscape-preferences.cpp:797 +#: ../src/ui/dialog/inkscape-preferences.cpp:823 +#: ../src/ui/dialog/inkscape-preferences.cpp:848 msgid "Grid units:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:777 -#: ../src/ui/dialog/inkscape-preferences.cpp:802 +#: ../src/ui/dialog/inkscape-preferences.cpp:828 +#: ../src/ui/dialog/inkscape-preferences.cpp:853 msgid "Origin X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:778 -#: ../src/ui/dialog/inkscape-preferences.cpp:803 +#: ../src/ui/dialog/inkscape-preferences.cpp:829 +#: ../src/ui/dialog/inkscape-preferences.cpp:854 msgid "Origin Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:783 +#: ../src/ui/dialog/inkscape-preferences.cpp:834 msgid "Spacing X:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:784 -#: ../src/ui/dialog/inkscape-preferences.cpp:806 +#: ../src/ui/dialog/inkscape-preferences.cpp:835 +#: ../src/ui/dialog/inkscape-preferences.cpp:857 msgid "Spacing Y:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:786 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/ui/dialog/inkscape-preferences.cpp:811 -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:837 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 +#: ../src/ui/dialog/inkscape-preferences.cpp:862 +#: ../src/ui/dialog/inkscape-preferences.cpp:863 msgid "Minor grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/ui/dialog/inkscape-preferences.cpp:812 +#: ../src/ui/dialog/inkscape-preferences.cpp:838 +#: ../src/ui/dialog/inkscape-preferences.cpp:863 msgid "Color used for normal grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:788 -#: ../src/ui/dialog/inkscape-preferences.cpp:789 -#: ../src/ui/dialog/inkscape-preferences.cpp:813 -#: ../src/ui/dialog/inkscape-preferences.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:839 +#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:864 +#: ../src/ui/dialog/inkscape-preferences.cpp:865 msgid "Major grid line color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:789 -#: ../src/ui/dialog/inkscape-preferences.cpp:814 +#: ../src/ui/dialog/inkscape-preferences.cpp:840 +#: ../src/ui/dialog/inkscape-preferences.cpp:865 msgid "Color used for major (highlighted) grid lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:791 -#: ../src/ui/dialog/inkscape-preferences.cpp:816 +#: ../src/ui/dialog/inkscape-preferences.cpp:842 +#: ../src/ui/dialog/inkscape-preferences.cpp:867 msgid "Major grid line every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:792 +#: ../src/ui/dialog/inkscape-preferences.cpp:843 msgid "Show dots instead of lines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:793 +#: ../src/ui/dialog/inkscape-preferences.cpp:844 msgid "If set, display dots at gridpoints instead of gridlines" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:867 +#: ../src/ui/dialog/inkscape-preferences.cpp:918 msgid "Input/Output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:870 +#: ../src/ui/dialog/inkscape-preferences.cpp:921 msgid "Use current directory for \"Save As ...\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:872 +#: ../src/ui/dialog/inkscape-preferences.cpp:923 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 " @@ -19093,176 +19287,176 @@ msgid "" "it" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:874 +#: ../src/ui/dialog/inkscape-preferences.cpp:925 msgid "Add label comments to printing output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:876 +#: ../src/ui/dialog/inkscape-preferences.cpp:927 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:878 +#: ../src/ui/dialog/inkscape-preferences.cpp:929 msgid "Add default metadata to new documents" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:880 +#: ../src/ui/dialog/inkscape-preferences.cpp:931 msgid "" "Add default metadata to new documents. Default metadata can be set from " "Document Properties->Metadata." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:884 +#: ../src/ui/dialog/inkscape-preferences.cpp:935 msgid "_Grab sensitivity:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:884 +#: ../src/ui/dialog/inkscape-preferences.cpp:935 msgid "pixels (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:885 +#: ../src/ui/dialog/inkscape-preferences.cpp:936 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:887 +#: ../src/ui/dialog/inkscape-preferences.cpp:938 msgid "_Click/drag threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:887 -#: ../src/ui/dialog/inkscape-preferences.cpp:1223 -#: ../src/ui/dialog/inkscape-preferences.cpp:1227 -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/ui/dialog/inkscape-preferences.cpp:938 +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +#: ../src/ui/dialog/inkscape-preferences.cpp:1288 msgid "pixels" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:888 +#: ../src/ui/dialog/inkscape-preferences.cpp:939 msgid "" "Maximum mouse drag (in screen pixels) which is considered a click, not a drag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:891 +#: ../src/ui/dialog/inkscape-preferences.cpp:942 msgid "_Handle size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:892 +#: ../src/ui/dialog/inkscape-preferences.cpp:943 msgid "Set the relative size of node handles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:894 +#: ../src/ui/dialog/inkscape-preferences.cpp:945 msgid "Use pressure-sensitive tablet (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:896 +#: ../src/ui/dialog/inkscape-preferences.cpp:947 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:898 +#: ../src/ui/dialog/inkscape-preferences.cpp:949 msgid "Switch tool based on tablet device (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:900 +#: ../src/ui/dialog/inkscape-preferences.cpp:951 msgid "" "Change tool as different devices are used on the tablet (pen, eraser, mouse)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:901 +#: ../src/ui/dialog/inkscape-preferences.cpp:952 msgid "Input devices" msgstr "" #. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:904 +#: ../src/ui/dialog/inkscape-preferences.cpp:955 msgid "Use named colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:905 +#: ../src/ui/dialog/inkscape-preferences.cpp:956 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:907 +#: ../src/ui/dialog/inkscape-preferences.cpp:958 msgid "XML formatting" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:909 +#: ../src/ui/dialog/inkscape-preferences.cpp:960 msgid "Inline attributes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:910 +#: ../src/ui/dialog/inkscape-preferences.cpp:961 msgid "Put attributes on the same line as the element tag" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:913 +#: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "_Indent, spaces:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:913 +#: ../src/ui/dialog/inkscape-preferences.cpp:964 msgid "" "The number of spaces to use for indenting nested elements; set to 0 for no " "indentation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:915 +#: ../src/ui/dialog/inkscape-preferences.cpp:966 msgid "Path data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:918 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 msgid "Absolute" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:918 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 msgid "Relative" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:918 -#: ../src/ui/dialog/inkscape-preferences.cpp:1202 +#: ../src/ui/dialog/inkscape-preferences.cpp:969 +#: ../src/ui/dialog/inkscape-preferences.cpp:1253 msgid "Optimized" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:973 msgid "Path string format:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:922 +#: ../src/ui/dialog/inkscape-preferences.cpp:973 msgid "" "Path data should be written: only with absolute coordinates, only with " "relative coordinates, or optimized for string length (mixed absolute and " "relative coordinates)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:924 +#: ../src/ui/dialog/inkscape-preferences.cpp:975 msgid "Force repeat commands" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:925 +#: ../src/ui/dialog/inkscape-preferences.cpp:976 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:927 +#: ../src/ui/dialog/inkscape-preferences.cpp:978 msgid "Numbers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:930 +#: ../src/ui/dialog/inkscape-preferences.cpp:981 msgid "_Numeric precision:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:930 +#: ../src/ui/dialog/inkscape-preferences.cpp:981 msgid "Significant figures of the values written to the SVG file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:984 msgid "Minimum _exponent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:933 +#: ../src/ui/dialog/inkscape-preferences.cpp:984 msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" @@ -19270,56 +19464,56 @@ msgstr "" #. Code to add controls for attribute checking options #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:938 +#: ../src/ui/dialog/inkscape-preferences.cpp:989 msgid "Improper Attributes Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:940 -#: ../src/ui/dialog/inkscape-preferences.cpp:948 -#: ../src/ui/dialog/inkscape-preferences.cpp:956 +#: ../src/ui/dialog/inkscape-preferences.cpp:991 +#: ../src/ui/dialog/inkscape-preferences.cpp:999 +#: ../src/ui/dialog/inkscape-preferences.cpp:1007 msgid "Print warnings" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:941 +#: ../src/ui/dialog/inkscape-preferences.cpp:992 msgid "" "Print warning if invalid or non-useful attributes found. Database files " "located in inkscape_data_dir/attributes." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:942 +#: ../src/ui/dialog/inkscape-preferences.cpp:993 msgid "Remove attributes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:943 +#: ../src/ui/dialog/inkscape-preferences.cpp:994 msgid "Delete invalid or non-useful attributes from element tag" msgstr "" #. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:946 +#: ../src/ui/dialog/inkscape-preferences.cpp:997 msgid "Inappropriate Style Properties Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:949 +#: ../src/ui/dialog/inkscape-preferences.cpp:1000 msgid "" "Print warning if inappropriate style properties found (i.e. 'font-family' " "set on a ). Database files located in inkscape_data_dir/attributes." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:950 -#: ../src/ui/dialog/inkscape-preferences.cpp:958 +#: ../src/ui/dialog/inkscape-preferences.cpp:1001 +#: ../src/ui/dialog/inkscape-preferences.cpp:1009 msgid "Remove style properties" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:951 +#: ../src/ui/dialog/inkscape-preferences.cpp:1002 msgid "Delete inappropriate style properties" msgstr "" #. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:954 +#: ../src/ui/dialog/inkscape-preferences.cpp:1005 msgid "Non-useful Style Properties Actions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:957 +#: ../src/ui/dialog/inkscape-preferences.cpp:1008 msgid "" "Print warning if redundant style properties found (i.e. if a property has " "the default value and a different value is not inherited or if value is the " @@ -19327,207 +19521,207 @@ msgid "" "attributes." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:959 +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 msgid "Delete redundant style properties" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:961 +#: ../src/ui/dialog/inkscape-preferences.cpp:1012 msgid "Check Attributes and Style Properties on" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:963 +#: ../src/ui/dialog/inkscape-preferences.cpp:1014 msgid "Reading" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:964 +#: ../src/ui/dialog/inkscape-preferences.cpp:1015 msgid "" "Check attributes and style properties on reading in SVG files (including " "those internal to Inkscape which will slow down startup)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:965 +#: ../src/ui/dialog/inkscape-preferences.cpp:1016 msgid "Editing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:966 +#: ../src/ui/dialog/inkscape-preferences.cpp:1017 msgid "" "Check attributes and style properties while editing SVG files (may slow down " "Inkscape, mostly useful for debugging)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:967 +#: ../src/ui/dialog/inkscape-preferences.cpp:1018 msgid "Writing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:968 +#: ../src/ui/dialog/inkscape-preferences.cpp:1019 msgid "Check attributes and style properties on writing out SVG files" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:970 +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 msgid "SVG output" msgstr "" #. TRANSLATORS: see http://www.newsandtech.com/issues/2004/03-04/pt/03-04_rendering.htm -#: ../src/ui/dialog/inkscape-preferences.cpp:976 +#: ../src/ui/dialog/inkscape-preferences.cpp:1027 msgid "Perceptual" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:976 +#: ../src/ui/dialog/inkscape-preferences.cpp:1027 msgid "Relative Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:976 +#: ../src/ui/dialog/inkscape-preferences.cpp:1027 msgid "Absolute Colorimetric" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:980 +#: ../src/ui/dialog/inkscape-preferences.cpp:1031 msgid "(Note: Color management has been disabled in this build)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:984 +#: ../src/ui/dialog/inkscape-preferences.cpp:1035 msgid "Display adjustment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:993 +#: ../src/ui/dialog/inkscape-preferences.cpp:1044 #, c-format msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:994 +#: ../src/ui/dialog/inkscape-preferences.cpp:1045 msgid "Display profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:999 +#: ../src/ui/dialog/inkscape-preferences.cpp:1050 msgid "Retrieve profile from display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1002 +#: ../src/ui/dialog/inkscape-preferences.cpp:1053 msgid "Retrieve profiles from those attached to displays via XICC" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1004 +#: ../src/ui/dialog/inkscape-preferences.cpp:1055 msgid "Retrieve profiles from those attached to displays" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1009 +#: ../src/ui/dialog/inkscape-preferences.cpp:1060 msgid "Display rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +#: ../src/ui/dialog/inkscape-preferences.cpp:1061 msgid "The rendering intent to use to calibrate display output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +#: ../src/ui/dialog/inkscape-preferences.cpp:1063 msgid "Proofing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1014 +#: ../src/ui/dialog/inkscape-preferences.cpp:1065 msgid "Simulate output on screen" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1016 +#: ../src/ui/dialog/inkscape-preferences.cpp:1067 msgid "Simulates output of target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1018 +#: ../src/ui/dialog/inkscape-preferences.cpp:1069 msgid "Mark out of gamut colors" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1020 +#: ../src/ui/dialog/inkscape-preferences.cpp:1071 msgid "Highlights colors that are out of gamut for the target device" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1027 +#: ../src/ui/dialog/inkscape-preferences.cpp:1078 msgid "Out of gamut warning color:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1028 +#: ../src/ui/dialog/inkscape-preferences.cpp:1079 msgid "Selects the color used for out of gamut warning" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1030 +#: ../src/ui/dialog/inkscape-preferences.cpp:1081 msgid "Device profile:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1031 +#: ../src/ui/dialog/inkscape-preferences.cpp:1082 msgid "The ICC profile to use to simulate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1034 +#: ../src/ui/dialog/inkscape-preferences.cpp:1085 msgid "Device rendering intent:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1035 +#: ../src/ui/dialog/inkscape-preferences.cpp:1086 msgid "The rendering intent to use to calibrate device output" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1037 +#: ../src/ui/dialog/inkscape-preferences.cpp:1088 msgid "Black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1039 +#: ../src/ui/dialog/inkscape-preferences.cpp:1090 msgid "Enables black point compensation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1041 +#: ../src/ui/dialog/inkscape-preferences.cpp:1092 msgid "Preserve black" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1048 +#: ../src/ui/dialog/inkscape-preferences.cpp:1099 msgid "(LittleCMS 1.15 or later required)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1050 +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 msgid "Preserve K channel in CMYK -> CMYK transforms" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1064 +#: ../src/ui/dialog/inkscape-preferences.cpp:1115 #: ../src/ui/widget/color-icc-selector.cpp:372 #: ../src/ui/widget/color-icc-selector.cpp:671 msgid "" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1109 +#: ../src/ui/dialog/inkscape-preferences.cpp:1160 msgid "Color management" msgstr "" #. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1112 +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 msgid "Enable autosave (requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1113 +#: ../src/ui/dialog/inkscape-preferences.cpp:1164 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:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgctxt "Filesystem" msgid "Autosave _directory:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1170 msgid "" "The directory where autosaves will be written. This should be an absolute " "path (starts with / on UNIX or a drive letter such as C: on Windows). " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 msgid "_Interval (in minutes):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1121 +#: ../src/ui/dialog/inkscape-preferences.cpp:1172 msgid "Interval (in minutes) at which document will be autosaved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 msgid "_Maximum number of autosaves:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1123 +#: ../src/ui/dialog/inkscape-preferences.cpp:1174 msgid "" "Maximum number of autosaved files; use this to limit the storage space used" msgstr "" @@ -19544,659 +19738,669 @@ msgstr "" #. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); #. #. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1138 +#: ../src/ui/dialog/inkscape-preferences.cpp:1189 msgid "Autosave" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +#: ../src/ui/dialog/inkscape-preferences.cpp:1193 msgid "Open Clip Art Library _Server Name:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1143 +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 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:1145 +#: ../src/ui/dialog/inkscape-preferences.cpp:1196 msgid "Open Clip Art Library _Username:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 msgid "The username used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1148 +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 msgid "Open Clip Art Library _Password:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +#: ../src/ui/dialog/inkscape-preferences.cpp:1200 msgid "The password used to log into Open Clip Art Library" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1150 +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 msgid "Open Clip Art" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1155 +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 msgid "Behavior" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1159 +#: ../src/ui/dialog/inkscape-preferences.cpp:1210 msgid "_Simplification threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1160 +#: ../src/ui/dialog/inkscape-preferences.cpp:1211 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:1162 +#: ../src/ui/dialog/inkscape-preferences.cpp:1213 msgid "Color stock markers the same color as object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "Color custom markers the same color as object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1164 -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1443 msgid "Update marker color when object color changes" msgstr "" #. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1167 +#: ../src/ui/dialog/inkscape-preferences.cpp:1218 msgid "Select in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1168 +#: ../src/ui/dialog/inkscape-preferences.cpp:1219 msgid "Select only within current layer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1169 +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "Select in current layer and sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1170 +#: ../src/ui/dialog/inkscape-preferences.cpp:1221 msgid "Ignore hidden objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1171 +#: ../src/ui/dialog/inkscape-preferences.cpp:1222 msgid "Ignore locked objects and layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1172 +#: ../src/ui/dialog/inkscape-preferences.cpp:1223 msgid "Deselect upon layer change" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +#: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "Ctrl+A, Tab, Shift+Tab" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1179 +#: ../src/ui/dialog/inkscape-preferences.cpp:1230 msgid "Make keyboard selection commands work on objects in all layers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +#: ../src/ui/dialog/inkscape-preferences.cpp:1232 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +#: ../src/ui/dialog/inkscape-preferences.cpp:1234 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 +#: ../src/ui/dialog/inkscape-preferences.cpp:1236 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:1187 +#: ../src/ui/dialog/inkscape-preferences.cpp:1238 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:1189 +#: ../src/ui/dialog/inkscape-preferences.cpp:1240 msgid "Wrap when cycling objects in z-order" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "Alt+Scroll Wheel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1193 +#: ../src/ui/dialog/inkscape-preferences.cpp:1244 msgid "Wrap around at start and end when cycling objects in z-order" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 msgid "Selecting" msgstr "" #. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1198 +#: ../src/ui/dialog/inkscape-preferences.cpp:1249 #: ../src/widgets/select-toolbar.cpp:554 msgid "Scale stroke width" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 msgid "Scale rounded corners in rectangles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1200 +#: ../src/ui/dialog/inkscape-preferences.cpp:1251 msgid "Transform gradients" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1252 msgid "Transform patterns" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1254 msgid "Preserved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 #: ../src/widgets/select-toolbar.cpp:555 msgid "When scaling objects, scale the stroke width by the same proportion" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1208 +#: ../src/ui/dialog/inkscape-preferences.cpp:1259 #: ../src/widgets/select-toolbar.cpp:566 msgid "When scaling rectangles, scale the radii of rounded corners" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 +#: ../src/ui/dialog/inkscape-preferences.cpp:1261 #: ../src/widgets/select-toolbar.cpp:577 msgid "Move gradients (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1212 +#: ../src/ui/dialog/inkscape-preferences.cpp:1263 #: ../src/widgets/select-toolbar.cpp:588 msgid "Move patterns (in fill or stroke) along with the objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1213 +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 msgid "Store transformation" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1215 +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 msgid "" "If possible, apply transformation to objects without adding a transform= " "attribute" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 msgid "Always store transformation as a transform= attribute on objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/inkscape-preferences.cpp:1270 msgid "Transforms" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1223 +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 msgid "Mouse _wheel scrolls by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1224 +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 msgid "" "One mouse wheel notch scrolls by this distance in screen pixels " "(horizontally with Shift)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1225 +#: ../src/ui/dialog/inkscape-preferences.cpp:1276 msgid "Ctrl+arrows" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1227 +#: ../src/ui/dialog/inkscape-preferences.cpp:1278 msgid "Sc_roll by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 +#: ../src/ui/dialog/inkscape-preferences.cpp:1279 msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1230 +#: ../src/ui/dialog/inkscape-preferences.cpp:1281 msgid "_Acceleration:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1231 +#: ../src/ui/dialog/inkscape-preferences.cpp:1282 msgid "" "Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " "acceleration)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1232 +#: ../src/ui/dialog/inkscape-preferences.cpp:1283 msgid "Autoscrolling" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 msgid "_Speed:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1235 +#: ../src/ui/dialog/inkscape-preferences.cpp:1286 msgid "" "How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " "autoscroll off)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +#: ../src/ui/dialog/inkscape-preferences.cpp:1288 #: ../src/ui/dialog/tracedialog.cpp:520 ../src/ui/dialog/tracedialog.cpp:719 msgid "_Threshold:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1238 +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 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:1239 +#: ../src/ui/dialog/inkscape-preferences.cpp:1290 msgid "Mouse move pans when Space is pressed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1241 +#: ../src/ui/dialog/inkscape-preferences.cpp:1292 msgid "When on, pressing and holding Space and dragging pans canvas" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +#: ../src/ui/dialog/inkscape-preferences.cpp:1293 msgid "Mouse wheel zooms by default" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1244 +#: ../src/ui/dialog/inkscape-preferences.cpp:1295 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:1245 +#: ../src/ui/dialog/inkscape-preferences.cpp:1296 msgid "Scrolling" msgstr "" #. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1248 +#: ../src/ui/dialog/inkscape-preferences.cpp:1299 msgid "Snap indicator" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +#: ../src/ui/dialog/inkscape-preferences.cpp:1301 msgid "Enable snap indicator" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1252 +#: ../src/ui/dialog/inkscape-preferences.cpp:1303 msgid "After snapping, a symbol is drawn at the point that has snapped" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +#: ../src/ui/dialog/inkscape-preferences.cpp:1308 msgid "Snap indicator persistence (in seconds):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +#: ../src/ui/dialog/inkscape-preferences.cpp:1309 msgid "" "Controls how long the snap indicator message will be shown, before it " "disappears" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1311 msgid "What should snap" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 msgid "Only snap the node closest to the pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +#: ../src/ui/dialog/inkscape-preferences.cpp:1315 msgid "" "Only try to snap the node that is initially closest to the mouse pointer" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1267 +#: ../src/ui/dialog/inkscape-preferences.cpp:1318 msgid "_Weight factor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 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:1270 +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "Snap the mouse pointer when dragging a constrained knot" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1272 +#: ../src/ui/dialog/inkscape-preferences.cpp:1323 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:1274 +#: ../src/ui/dialog/inkscape-preferences.cpp:1325 msgid "Delayed snap" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1277 +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 msgid "Delay (in seconds):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 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:1280 +#: ../src/ui/dialog/inkscape-preferences.cpp:1331 msgid "Snapping" msgstr "" #. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 msgid "_Arrow keys move by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1286 +#: ../src/ui/dialog/inkscape-preferences.cpp:1337 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:1289 +#: ../src/ui/dialog/inkscape-preferences.cpp:1340 msgid "> and < _scale by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1290 +#: ../src/ui/dialog/inkscape-preferences.cpp:1341 msgid "Pressing > or < scales selection up or down by this increment" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1292 +#: ../src/ui/dialog/inkscape-preferences.cpp:1343 msgid "_Inset/Outset by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +#: ../src/ui/dialog/inkscape-preferences.cpp:1344 msgid "Inset and Outset commands displace the path by this distance" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1294 +#: ../src/ui/dialog/inkscape-preferences.cpp:1345 msgid "Compass-like display of angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 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:1298 +#: ../src/ui/dialog/inkscape-preferences.cpp:1349 msgctxt "Rotation angle" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 msgid "_Rotation snaps every:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 -#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 msgid "degrees" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1303 +#: ../src/ui/dialog/inkscape-preferences.cpp:1354 msgid "" "Rotating with Ctrl pressed snaps every that much degrees; also, pressing " "[ or ] rotates by this amount" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1304 +#: ../src/ui/dialog/inkscape-preferences.cpp:1355 msgid "Relative snapping of guideline angles" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1306 +#: ../src/ui/dialog/inkscape-preferences.cpp:1357 msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1308 +#: ../src/ui/dialog/inkscape-preferences.cpp:1359 msgid "_Zoom in/out by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1308 -#: ../src/ui/dialog/objects.cpp:1651 +#: ../src/ui/dialog/inkscape-preferences.cpp:1359 +#: ../src/ui/dialog/objects.cpp:1655 #: ../src/ui/widget/filter-effect-chooser.cpp:23 msgid "%" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1309 +#: ../src/ui/dialog/inkscape-preferences.cpp:1360 msgid "" "Zoom tool click, +/- keys, and middle click zoom in and out by this " "multiplier" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 msgid "_Rotate canvas by:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1312 +#: ../src/ui/dialog/inkscape-preferences.cpp:1363 msgid "Rotate canvas clockwise and counter-clockwise by this amount." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Steps" msgstr "" #. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +#: ../src/ui/dialog/inkscape-preferences.cpp:1367 msgid "Move in parallel" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1318 +#: ../src/ui/dialog/inkscape-preferences.cpp:1369 msgid "Stay unmoved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1320 +#: ../src/ui/dialog/inkscape-preferences.cpp:1371 msgid "Move according to transform" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 msgid "Are unlinked" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +#: ../src/ui/dialog/inkscape-preferences.cpp:1375 msgid "Are deleted" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1327 +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 msgid "Moving original: clones and linked offsets" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +#: ../src/ui/dialog/inkscape-preferences.cpp:1380 msgid "Clones are translated by the same vector as their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1331 +#: ../src/ui/dialog/inkscape-preferences.cpp:1382 msgid "Clones preserve their positions when their original is moved" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +#: ../src/ui/dialog/inkscape-preferences.cpp:1384 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:1334 +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 msgid "Deleting original: clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1336 +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 msgid "Orphaned clones are converted to regular objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1338 +#: ../src/ui/dialog/inkscape-preferences.cpp:1389 msgid "Orphaned clones are deleted along with their original" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1340 +#: ../src/ui/dialog/inkscape-preferences.cpp:1391 msgid "Duplicating original+clones/linked offset" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1342 +#: ../src/ui/dialog/inkscape-preferences.cpp:1393 msgid "Relink duplicated clones" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1344 +#: ../src/ui/dialog/inkscape-preferences.cpp:1395 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 "" +#: ../src/ui/dialog/inkscape-preferences.cpp:1397 +msgid "Unlinking clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 +msgid "Path operations unlink clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +msgid "" +"The following path operations will unlink clones: Stroke to path, Object to " +"path, Boolean operations, Combine, Break apart" +msgstr "" + #. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +#: ../src/ui/dialog/inkscape-preferences.cpp:1403 msgid "Clones" msgstr "" #. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +#: ../src/ui/dialog/inkscape-preferences.cpp:1406 msgid "When applying, use the topmost selected object as clippath/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1352 +#: ../src/ui/dialog/inkscape-preferences.cpp:1408 msgid "" "Uncheck this to use the bottom selected object as the clipping path or mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1353 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 msgid "Remove clippath/mask object after applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1355 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 msgid "" "After applying, remove the object used as the clipping path or mask from the " "drawing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1357 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 msgid "Before applying" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1359 +#: ../src/ui/dialog/inkscape-preferences.cpp:1415 msgid "Do not group clipped/masked objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1360 +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 msgid "Put every clipped/masked object in its own group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1361 +#: ../src/ui/dialog/inkscape-preferences.cpp:1417 msgid "Put all clipped/masked objects into one group" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 msgid "Apply clippath/mask to every object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1367 +#: ../src/ui/dialog/inkscape-preferences.cpp:1423 msgid "Apply clippath/mask to groups containing single object" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1370 +#: ../src/ui/dialog/inkscape-preferences.cpp:1426 msgid "Apply clippath/mask to group containing all objects" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1372 +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 msgid "After releasing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1374 +#: ../src/ui/dialog/inkscape-preferences.cpp:1430 msgid "Ungroup automatically created groups" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1376 +#: ../src/ui/dialog/inkscape-preferences.cpp:1432 msgid "Ungroup groups created when setting clip/mask" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 msgid "Clippaths and masks" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1381 +#: ../src/ui/dialog/inkscape-preferences.cpp:1437 msgid "Stroke Style Markers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 -#: ../src/ui/dialog/inkscape-preferences.cpp:1385 +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +#: ../src/ui/dialog/inkscape-preferences.cpp:1441 msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1389 +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 #: ../share/extensions/hershey.inx.h:27 msgid "Markers" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1392 +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 msgid "Document cleanup" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1393 -#: ../src/ui/dialog/inkscape-preferences.cpp:1395 +#: ../src/ui/dialog/inkscape-preferences.cpp:1449 +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 msgid "Remove unused swatches when doing a document cleanup" msgstr "" #. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1396 +#: ../src/ui/dialog/inkscape-preferences.cpp:1452 msgid "Cleanup" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 msgid "Number of _Threads:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1404 -#: ../src/ui/dialog/inkscape-preferences.cpp:1936 +#: ../src/ui/dialog/inkscape-preferences.cpp:1460 +#: ../src/ui/dialog/inkscape-preferences.cpp:1988 msgid "(requires restart)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +#: ../src/ui/dialog/inkscape-preferences.cpp:1461 msgid "Configure number of processors/threads to use when rendering filters" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:1465 msgid "Rendering _cache size:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:1465 msgctxt "mebibyte (2^20 bytes) abbreviation" msgid "MiB" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +#: ../src/ui/dialog/inkscape-preferences.cpp:1465 msgid "" "Set the amount of memory per document which can be used to store rendered " "parts of the drawing for later reuse; set to zero to disable caching" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +#: ../src/ui/dialog/inkscape-preferences.cpp:1469 msgid "Rendering tile multiplier:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 -msgid "requires restart" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +#: ../src/ui/dialog/inkscape-preferences.cpp:1470 msgid "" "Set the relative size of tiles used to render the canvas. The larger the " "value, the bigger the tile size." @@ -20204,91 +20408,91 @@ msgstr "" #. blur quality #. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1416 -#: ../src/ui/dialog/inkscape-preferences.cpp:1440 +#: ../src/ui/dialog/inkscape-preferences.cpp:1473 +#: ../src/ui/dialog/inkscape-preferences.cpp:1497 msgid "Best quality (slowest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1418 -#: ../src/ui/dialog/inkscape-preferences.cpp:1442 +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 +#: ../src/ui/dialog/inkscape-preferences.cpp:1499 msgid "Better quality (slower)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1420 -#: ../src/ui/dialog/inkscape-preferences.cpp:1444 +#: ../src/ui/dialog/inkscape-preferences.cpp:1477 +#: ../src/ui/dialog/inkscape-preferences.cpp:1501 msgid "Average quality" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1422 -#: ../src/ui/dialog/inkscape-preferences.cpp:1446 +#: ../src/ui/dialog/inkscape-preferences.cpp:1479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1503 msgid "Lower quality (faster)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1424 -#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +#: ../src/ui/dialog/inkscape-preferences.cpp:1481 +#: ../src/ui/dialog/inkscape-preferences.cpp:1505 msgid "Lowest quality (fastest)" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1427 +#: ../src/ui/dialog/inkscape-preferences.cpp:1484 msgid "Gaussian blur quality for display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1429 -#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +#: ../src/ui/dialog/inkscape-preferences.cpp:1486 +#: ../src/ui/dialog/inkscape-preferences.cpp:1510 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:1431 -#: ../src/ui/dialog/inkscape-preferences.cpp:1455 +#: ../src/ui/dialog/inkscape-preferences.cpp:1488 +#: ../src/ui/dialog/inkscape-preferences.cpp:1512 msgid "Better quality, but slower display" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1433 -#: ../src/ui/dialog/inkscape-preferences.cpp:1457 +#: ../src/ui/dialog/inkscape-preferences.cpp:1490 +#: ../src/ui/dialog/inkscape-preferences.cpp:1514 msgid "Average quality, acceptable display speed" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -#: ../src/ui/dialog/inkscape-preferences.cpp:1459 +#: ../src/ui/dialog/inkscape-preferences.cpp:1492 +#: ../src/ui/dialog/inkscape-preferences.cpp:1516 msgid "Lower quality (some artifacts), but display is faster" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1437 -#: ../src/ui/dialog/inkscape-preferences.cpp:1461 +#: ../src/ui/dialog/inkscape-preferences.cpp:1494 +#: ../src/ui/dialog/inkscape-preferences.cpp:1518 msgid "Lowest quality (considerable artifacts), but display is fastest" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +#: ../src/ui/dialog/inkscape-preferences.cpp:1508 msgid "Filter effects quality for display" msgstr "" #. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -#: ../src/ui/dialog/print.cpp:204 +#: ../src/ui/dialog/inkscape-preferences.cpp:1520 +#: ../src/ui/dialog/print.cpp:207 msgid "Rendering" msgstr "" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1469 ../src/verbs.cpp:151 +#: ../src/ui/dialog/inkscape-preferences.cpp:1526 ../src/verbs.cpp:154 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1470 +#: ../src/ui/dialog/inkscape-preferences.cpp:1527 msgid "Automatically reload bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +#: ../src/ui/dialog/inkscape-preferences.cpp:1529 msgid "Automatically reload linked images when file is changed on disk" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1474 +#: ../src/ui/dialog/inkscape-preferences.cpp:1531 msgid "_Bitmap editor:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1476 +#: ../src/ui/dialog/inkscape-preferences.cpp:1533 #: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:65 #: ../share/extensions/prepare_file_save_as.inx.h:2 #: ../share/extensions/prepare_print_win32_vector.inx.h:2 @@ -20296,275 +20500,275 @@ msgstr "" msgid "Export" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1478 +#: ../src/ui/dialog/inkscape-preferences.cpp:1535 msgid "Default export _resolution:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1536 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1480 +#: ../src/ui/dialog/inkscape-preferences.cpp:1537 #: ../src/ui/dialog/xml-tree.cpp:911 msgid "Create" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1482 +#: ../src/ui/dialog/inkscape-preferences.cpp:1539 msgid "Resolution for Create Bitmap _Copy:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1483 +#: ../src/ui/dialog/inkscape-preferences.cpp:1540 msgid "Resolution used by the Create Bitmap Copy command" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1486 +#: ../src/ui/dialog/inkscape-preferences.cpp:1543 msgid "Ask about linking and scaling when importing" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1488 +#: ../src/ui/dialog/inkscape-preferences.cpp:1545 msgid "Pop-up linking and scaling dialog when importing bitmap image." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1494 +#: ../src/ui/dialog/inkscape-preferences.cpp:1551 msgid "Bitmap link:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1501 +#: ../src/ui/dialog/inkscape-preferences.cpp:1558 msgid "Bitmap scale (image-rendering):" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1506 +#: ../src/ui/dialog/inkscape-preferences.cpp:1563 msgid "Default _import resolution:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1507 +#: ../src/ui/dialog/inkscape-preferences.cpp:1564 msgid "Default bitmap resolution (in dots per inch) for bitmap import" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1508 +#: ../src/ui/dialog/inkscape-preferences.cpp:1565 msgid "Override file resolution" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1510 +#: ../src/ui/dialog/inkscape-preferences.cpp:1567 msgid "Use default bitmap resolution in favor of information from file" msgstr "" #. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1514 +#: ../src/ui/dialog/inkscape-preferences.cpp:1571 msgid "Images in Outline Mode" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1515 +#: ../src/ui/dialog/inkscape-preferences.cpp:1572 msgid "" "When active will render images while in outline mode instead of a red box " "with an x. This is useful for manual tracing." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1517 +#: ../src/ui/dialog/inkscape-preferences.cpp:1574 msgid "Bitmaps" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1529 +#: ../src/ui/dialog/inkscape-preferences.cpp:1586 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " "create will be added separately to " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1532 +#: ../src/ui/dialog/inkscape-preferences.cpp:1589 msgid "Shortcut file:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1535 +#: ../src/ui/dialog/inkscape-preferences.cpp:1592 #: ../src/ui/dialog/template-load-tab.cpp:43 msgid "Search:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1547 +#: ../src/ui/dialog/inkscape-preferences.cpp:1604 msgid "Shortcut" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1548 -#: ../src/ui/widget/page-sizer.cpp:270 +#: ../src/ui/dialog/inkscape-preferences.cpp:1605 +#: ../src/ui/widget/page-sizer.cpp:271 msgid "Description" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1591 +#: ../src/ui/dialog/inkscape-preferences.cpp:1648 msgid "" "Remove all your customized keyboard shortcuts, and revert to the shortcuts " "in the shortcut file listed above" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1595 +#: ../src/ui/dialog/inkscape-preferences.cpp:1652 msgid "Import ..." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1595 +#: ../src/ui/dialog/inkscape-preferences.cpp:1652 msgid "Import custom keyboard shortcuts from a file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1598 +#: ../src/ui/dialog/inkscape-preferences.cpp:1655 msgid "Export ..." msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1598 +#: ../src/ui/dialog/inkscape-preferences.cpp:1655 msgid "Export custom keyboard shortcuts to a file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1608 +#: ../src/ui/dialog/inkscape-preferences.cpp:1665 msgid "Keyboard Shortcuts" msgstr "" #. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1771 +#: ../src/ui/dialog/inkscape-preferences.cpp:1828 msgid "Misc" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1877 +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgctxt "Spellchecker language" msgid "None" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1898 +#: ../src/ui/dialog/inkscape-preferences.cpp:1955 msgid "Set the main spell check language" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1901 +#: ../src/ui/dialog/inkscape-preferences.cpp:1958 msgid "Second language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1902 +#: ../src/ui/dialog/inkscape-preferences.cpp:1959 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:1905 +#: ../src/ui/dialog/inkscape-preferences.cpp:1962 msgid "Third language:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1906 +#: ../src/ui/dialog/inkscape-preferences.cpp:1963 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:1908 +#: ../src/ui/dialog/inkscape-preferences.cpp:1965 msgid "Ignore words with digits" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1910 +#: ../src/ui/dialog/inkscape-preferences.cpp:1967 msgid "Ignore words containing digits, such as \"R2D2\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1912 +#: ../src/ui/dialog/inkscape-preferences.cpp:1969 msgid "Ignore words in ALL CAPITALS" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +#: ../src/ui/dialog/inkscape-preferences.cpp:1971 msgid "Ignore words in all capitals, such as \"IUPAC\"" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1916 +#: ../src/ui/dialog/inkscape-preferences.cpp:1973 msgid "Spellcheck" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1936 +#: ../src/ui/dialog/inkscape-preferences.cpp:1988 msgid "Latency _skew:" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1937 +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 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:1939 +#: ../src/ui/dialog/inkscape-preferences.cpp:1991 msgid "Pre-render named icons" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1941 +#: ../src/ui/dialog/inkscape-preferences.cpp:1993 msgid "" "When on, named icons will be rendered before displaying the ui. This is for " "working around bugs in GTK+ named icon notification" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1949 +#: ../src/ui/dialog/inkscape-preferences.cpp:1997 msgid "System info" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1953 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "User config: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1953 +#: ../src/ui/dialog/inkscape-preferences.cpp:2001 msgid "Location of users configuration" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1957 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "User preferences: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1957 +#: ../src/ui/dialog/inkscape-preferences.cpp:2005 msgid "Location of the users preferences file" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1961 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "User extensions: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1961 +#: ../src/ui/dialog/inkscape-preferences.cpp:2009 msgid "Location of the users extensions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1965 +#: ../src/ui/dialog/inkscape-preferences.cpp:2013 msgid "User cache: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1965 +#: ../src/ui/dialog/inkscape-preferences.cpp:2013 msgid "Location of users cache" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1973 +#: ../src/ui/dialog/inkscape-preferences.cpp:2021 msgid "Temporary files: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1973 +#: ../src/ui/dialog/inkscape-preferences.cpp:2021 msgid "Location of the temporary files used for autosave" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1977 +#: ../src/ui/dialog/inkscape-preferences.cpp:2025 msgid "Inkscape data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1977 +#: ../src/ui/dialog/inkscape-preferences.cpp:2025 msgid "Location of Inkscape data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1981 +#: ../src/ui/dialog/inkscape-preferences.cpp:2029 msgid "Inkscape extensions: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1981 +#: ../src/ui/dialog/inkscape-preferences.cpp:2029 msgid "Location of the Inkscape extensions" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1990 +#: ../src/ui/dialog/inkscape-preferences.cpp:2039 msgid "System data: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:1990 +#: ../src/ui/dialog/inkscape-preferences.cpp:2039 msgid "Locations of system data" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2014 +#: ../src/ui/dialog/inkscape-preferences.cpp:2053 msgid "Icon theme: " msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2014 +#: ../src/ui/dialog/inkscape-preferences.cpp:2053 msgid "Locations of icon themes" msgstr "" -#: ../src/ui/dialog/inkscape-preferences.cpp:2016 +#: ../src/ui/dialog/inkscape-preferences.cpp:2055 msgid "System" msgstr "" @@ -20724,8 +20928,8 @@ msgstr "" #. TODO: find an unused layer number, forming name from _("Layer ") + "%d" #: ../src/ui/dialog/layer-properties.cpp:326 -#: ../src/ui/dialog/layer-properties.cpp:382 ../src/verbs.cpp:189 -#: ../src/verbs.cpp:2496 +#: ../src/ui/dialog/layer-properties.cpp:382 ../src/verbs.cpp:192 +#: ../src/verbs.cpp:2516 msgid "Layer" msgstr "" @@ -20775,13 +20979,13 @@ msgstr "" msgid "Unlock layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:622 ../src/ui/dialog/objects.cpp:852 -#: ../src/verbs.cpp:1471 +#: ../src/ui/dialog/layers.cpp:622 ../src/ui/dialog/objects.cpp:856 +#: ../src/verbs.cpp:1483 msgid "Toggle layer solo" msgstr "" -#: ../src/ui/dialog/layers.cpp:625 ../src/ui/dialog/objects.cpp:855 -#: ../src/verbs.cpp:1495 +#: ../src/ui/dialog/layers.cpp:625 ../src/ui/dialog/objects.cpp:859 +#: ../src/verbs.cpp:1507 msgid "Lock other layers" msgstr "" @@ -20834,57 +21038,57 @@ msgstr "" msgid "Lower the current path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:311 +#: ../src/ui/dialog/livepatheffect-editor.cpp:313 msgid "Unknown effect is applied" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:314 +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 msgid "Click button to add an effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:329 +#: ../src/ui/dialog/livepatheffect-editor.cpp:331 msgid "Click add button to convert clone" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:334 -#: ../src/ui/dialog/livepatheffect-editor.cpp:338 -#: ../src/ui/dialog/livepatheffect-editor.cpp:347 +#: ../src/ui/dialog/livepatheffect-editor.cpp:336 +#: ../src/ui/dialog/livepatheffect-editor.cpp:340 +#: ../src/ui/dialog/livepatheffect-editor.cpp:349 msgid "Select a path or shape" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:343 +#: ../src/ui/dialog/livepatheffect-editor.cpp:345 msgid "Only one item can be selected" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:375 +#: ../src/ui/dialog/livepatheffect-editor.cpp:377 msgid "Unknown effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:451 +#: ../src/ui/dialog/livepatheffect-editor.cpp:453 msgid "Create and apply path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:491 +#: ../src/ui/dialog/livepatheffect-editor.cpp:493 msgid "Create and apply Clone original path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:513 +#: ../src/ui/dialog/livepatheffect-editor.cpp:515 msgid "Remove path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:531 +#: ../src/ui/dialog/livepatheffect-editor.cpp:533 msgid "Move path effect up" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:548 +#: ../src/ui/dialog/livepatheffect-editor.cpp:550 msgid "Move path effect down" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:603 +#: ../src/ui/dialog/livepatheffect-editor.cpp:605 msgid "Activate path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:603 +#: ../src/ui/dialog/livepatheffect-editor.cpp:605 msgid "Deactivate path effect" msgstr "" @@ -21078,8 +21282,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:237 ../src/verbs.cpp:2874 -#: ../src/verbs.cpp:2880 +#: ../src/ui/dialog/object-properties.cpp:237 ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2902 msgid "_Set" msgstr "" @@ -21137,187 +21341,187 @@ msgstr "" msgid "Unhide object" msgstr "" -#: ../src/ui/dialog/objects.cpp:882 +#: ../src/ui/dialog/objects.cpp:886 msgid "Unhide objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:882 +#: ../src/ui/dialog/objects.cpp:886 msgid "Hide objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:902 +#: ../src/ui/dialog/objects.cpp:906 msgid "Lock objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:902 +#: ../src/ui/dialog/objects.cpp:906 msgid "Unlock objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:914 +#: ../src/ui/dialog/objects.cpp:918 msgid "Layer to group" msgstr "" -#: ../src/ui/dialog/objects.cpp:914 +#: ../src/ui/dialog/objects.cpp:918 msgid "Group to layer" msgstr "" -#: ../src/ui/dialog/objects.cpp:1112 +#: ../src/ui/dialog/objects.cpp:1116 msgid "Moved objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:1361 ../src/ui/dialog/tags.cpp:838 +#: ../src/ui/dialog/objects.cpp:1365 ../src/ui/dialog/tags.cpp:838 #: ../src/ui/dialog/tags.cpp:845 msgid "Rename object" msgstr "" -#: ../src/ui/dialog/objects.cpp:1468 +#: ../src/ui/dialog/objects.cpp:1472 msgid "Set object highlight color" msgstr "" -#: ../src/ui/dialog/objects.cpp:1478 +#: ../src/ui/dialog/objects.cpp:1482 msgid "Set object opacity" msgstr "" -#: ../src/ui/dialog/objects.cpp:1507 +#: ../src/ui/dialog/objects.cpp:1511 msgid "Set object blend mode" msgstr "" -#: ../src/ui/dialog/objects.cpp:1576 +#: ../src/ui/dialog/objects.cpp:1580 msgid "Set object blur" msgstr "" -#: ../src/ui/dialog/objects.cpp:1642 +#: ../src/ui/dialog/objects.cpp:1646 msgctxt "Visibility" msgid "V" msgstr "" -#: ../src/ui/dialog/objects.cpp:1643 +#: ../src/ui/dialog/objects.cpp:1647 msgctxt "Lock" msgid "L" msgstr "" -#: ../src/ui/dialog/objects.cpp:1644 +#: ../src/ui/dialog/objects.cpp:1648 msgctxt "Type" msgid "T" msgstr "" -#: ../src/ui/dialog/objects.cpp:1645 +#: ../src/ui/dialog/objects.cpp:1649 msgctxt "Clip and mask" msgid "CM" msgstr "" -#: ../src/ui/dialog/objects.cpp:1646 +#: ../src/ui/dialog/objects.cpp:1650 msgctxt "Highlight" msgid "HL" msgstr "" -#: ../src/ui/dialog/objects.cpp:1647 +#: ../src/ui/dialog/objects.cpp:1651 msgid "Label" msgstr "" #. In order to get tooltips on header, we must create our own label. -#: ../src/ui/dialog/objects.cpp:1683 +#: ../src/ui/dialog/objects.cpp:1687 msgid "Toggle visibility of Layer, Group, or Object." msgstr "" -#: ../src/ui/dialog/objects.cpp:1696 +#: ../src/ui/dialog/objects.cpp:1700 msgid "Toggle lock of Layer, Group, or Object." msgstr "" -#: ../src/ui/dialog/objects.cpp:1708 +#: ../src/ui/dialog/objects.cpp:1712 msgid "" "Type: Layer, Group, or Object. Clicking on Layer or Group icon, toggles " "between the two types." msgstr "" -#: ../src/ui/dialog/objects.cpp:1727 +#: ../src/ui/dialog/objects.cpp:1731 msgid "Is object clipped and/or masked?" msgstr "" -#: ../src/ui/dialog/objects.cpp:1738 +#: ../src/ui/dialog/objects.cpp:1742 msgid "" "Highlight color of outline in Node tool. Click to set. If alpha is zero, use " "inherited color." msgstr "" -#: ../src/ui/dialog/objects.cpp:1749 +#: ../src/ui/dialog/objects.cpp:1753 msgid "" "Layer/Group/Object label (inkscape:label). Double-click to set. Default " "value is object 'id'." msgstr "" -#: ../src/ui/dialog/objects.cpp:1857 +#: ../src/ui/dialog/objects.cpp:1861 msgid "Add layer..." msgstr "" -#: ../src/ui/dialog/objects.cpp:1864 +#: ../src/ui/dialog/objects.cpp:1868 msgid "Remove object" msgstr "" -#: ../src/ui/dialog/objects.cpp:1872 +#: ../src/ui/dialog/objects.cpp:1876 msgid "Move To Bottom" msgstr "" -#: ../src/ui/dialog/objects.cpp:1896 +#: ../src/ui/dialog/objects.cpp:1900 msgid "Move To Top" msgstr "" -#: ../src/ui/dialog/objects.cpp:1904 +#: ../src/ui/dialog/objects.cpp:1908 msgid "Collapse All" msgstr "" -#: ../src/ui/dialog/objects.cpp:1918 +#: ../src/ui/dialog/objects.cpp:1922 msgid "Rename" msgstr "" -#: ../src/ui/dialog/objects.cpp:1924 +#: ../src/ui/dialog/objects.cpp:1928 msgid "Solo" msgstr "" -#: ../src/ui/dialog/objects.cpp:1925 +#: ../src/ui/dialog/objects.cpp:1929 msgid "Show All" msgstr "" -#: ../src/ui/dialog/objects.cpp:1926 +#: ../src/ui/dialog/objects.cpp:1930 msgid "Hide All" msgstr "" -#: ../src/ui/dialog/objects.cpp:1930 +#: ../src/ui/dialog/objects.cpp:1934 msgid "Lock Others" msgstr "" -#: ../src/ui/dialog/objects.cpp:1931 +#: ../src/ui/dialog/objects.cpp:1935 msgid "Lock All" msgstr "" #. LockAndHide -#: ../src/ui/dialog/objects.cpp:1932 ../src/verbs.cpp:3193 +#: ../src/ui/dialog/objects.cpp:1936 ../src/verbs.cpp:3217 msgid "Unlock All" msgstr "" -#: ../src/ui/dialog/objects.cpp:1936 +#: ../src/ui/dialog/objects.cpp:1940 msgid "Up" msgstr "" -#: ../src/ui/dialog/objects.cpp:1937 +#: ../src/ui/dialog/objects.cpp:1941 msgid "Down" msgstr "" -#: ../src/ui/dialog/objects.cpp:1946 +#: ../src/ui/dialog/objects.cpp:1950 msgid "Set Clip" msgstr "" #. will never be implemented #. _watching.push_back( &_addPopupItem( targetDesktop, SP_VERB_OBJECT_SET_INVERSE_CLIPPATH, 0, "Set Inverse Clip", (int)BUTTON_SETINVCLIP ) ); -#: ../src/ui/dialog/objects.cpp:1952 +#: ../src/ui/dialog/objects.cpp:1956 msgid "Unset Clip" msgstr "" -#: ../src/ui/dialog/objects.cpp:1957 +#: ../src/ui/dialog/objects.cpp:1961 msgid "Unset Mask" msgstr "" -#: ../src/ui/dialog/objects.cpp:1979 +#: ../src/ui/dialog/objects.cpp:1983 msgid "Select Highlight Color" msgstr "" @@ -21448,7 +21652,7 @@ msgid "Reset all settings to defaults" msgstr "" #. ## The OK button -#: ../src/ui/dialog/pixelartdialog.cpp:293 ../src/ui/dialog/spellcheck.cpp:70 +#: ../src/ui/dialog/pixelartdialog.cpp:293 ../src/ui/dialog/spellcheck.cpp:68 #: ../src/ui/dialog/tracedialog.cpp:815 msgid "_Stop" msgstr "" @@ -21565,24 +21769,24 @@ msgstr "" msgid "Arrange on ellipse" msgstr "" -#: ../src/ui/dialog/print.cpp:100 +#: ../src/ui/dialog/print.cpp:103 msgid "Could not open temporary PNG for bitmap printing" msgstr "" -#: ../src/ui/dialog/print.cpp:127 +#: ../src/ui/dialog/print.cpp:130 msgid "Could not set up Document" msgstr "" -#: ../src/ui/dialog/print.cpp:131 +#: ../src/ui/dialog/print.cpp:134 msgid "Failed to set CairoRenderContext" msgstr "" #. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:169 +#: ../src/ui/dialog/print.cpp:172 msgid "SVG Document" msgstr "" -#: ../src/ui/dialog/print.cpp:170 +#: ../src/ui/dialog/print.cpp:173 msgid "Print" msgstr "" @@ -21608,73 +21812,73 @@ msgstr "" msgid "Keywords: " msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:65 +#: ../src/ui/dialog/spellcheck.cpp:63 msgid "_Accept" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:66 +#: ../src/ui/dialog/spellcheck.cpp:64 msgid "_Ignore once" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:67 +#: ../src/ui/dialog/spellcheck.cpp:65 msgid "_Ignore" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:68 +#: ../src/ui/dialog/spellcheck.cpp:66 msgid "A_dd" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:71 +#: ../src/ui/dialog/spellcheck.cpp:69 msgid "_Start" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:101 +#: ../src/ui/dialog/spellcheck.cpp:99 msgid "Suggestions:" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:116 +#: ../src/ui/dialog/spellcheck.cpp:114 msgid "Accept the chosen suggestion" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:117 +#: ../src/ui/dialog/spellcheck.cpp:115 msgid "Ignore this word only once" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:118 +#: ../src/ui/dialog/spellcheck.cpp:116 msgid "Ignore this word in this session" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:119 +#: ../src/ui/dialog/spellcheck.cpp:117 msgid "Add this word to the chosen dictionary" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:133 +#: ../src/ui/dialog/spellcheck.cpp:131 msgid "Stop the check" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:134 +#: ../src/ui/dialog/spellcheck.cpp:132 msgid "Start the check" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:452 +#: ../src/ui/dialog/spellcheck.cpp:427 #, c-format msgid "Finished, %d words added to dictionary" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:454 +#: ../src/ui/dialog/spellcheck.cpp:429 msgid "Finished, nothing suspicious found" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:570 +#: ../src/ui/dialog/spellcheck.cpp:544 #, c-format msgid "Not in dictionary (%s): %s" msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:719 +#: ../src/ui/dialog/spellcheck.cpp:693 msgid "Checking..." msgstr "" -#: ../src/ui/dialog/spellcheck.cpp:788 +#: ../src/ui/dialog/spellcheck.cpp:762 msgid "Fix spelling" msgstr "" @@ -21907,7 +22111,7 @@ msgid "Preview Text:" msgstr "" #: ../src/ui/dialog/swatches.cpp:195 ../src/ui/tools/gradient-tool.cpp:359 -#: ../src/ui/tools/gradient-tool.cpp:457 ../src/widgets/gradient-vector.cpp:765 +#: ../src/ui/tools/gradient-tool.cpp:446 ../src/widgets/gradient-vector.cpp:744 msgid "Add gradient stop" msgstr "" @@ -21929,48 +22133,113 @@ msgstr "" msgid "Convert" msgstr "" +#: ../src/ui/dialog/symbols.cpp:73 +msgid "Current document" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:74 +msgid "All symbol sets" +msgstr "" + #. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:124 +#: ../src/ui/dialog/symbols.cpp:125 msgid "Symbol set: " msgstr "" -#. Fill in later -#: ../src/ui/dialog/symbols.cpp:127 ../src/ui/dialog/symbols.cpp:128 -msgid "Current Document" +#. ******************* Search ************************ +#. Search +#: ../src/ui/dialog/symbols.cpp:154 +msgid "Return to start search." msgstr "" -#: ../src/ui/dialog/symbols.cpp:182 +#: ../src/ui/dialog/symbols.cpp:257 msgid "Add Symbol from the current document." msgstr "" -#: ../src/ui/dialog/symbols.cpp:193 +#: ../src/ui/dialog/symbols.cpp:268 msgid "Remove Symbol from the current document." msgstr "" -#: ../src/ui/dialog/symbols.cpp:210 +#: ../src/ui/dialog/symbols.cpp:285 msgid "Display more icons in row." msgstr "" -#: ../src/ui/dialog/symbols.cpp:221 +#: ../src/ui/dialog/symbols.cpp:296 msgid "Display fewer icons in row." msgstr "" -#: ../src/ui/dialog/symbols.cpp:233 +#: ../src/ui/dialog/symbols.cpp:308 msgid "Toggle 'fit' symbols in icon space." msgstr "" -#: ../src/ui/dialog/symbols.cpp:247 +#: ../src/ui/dialog/symbols.cpp:322 msgid "Make symbols smaller by zooming out." msgstr "" -#: ../src/ui/dialog/symbols.cpp:259 +#: ../src/ui/dialog/symbols.cpp:334 msgid "Make symbols bigger by zooming in." msgstr "" -#: ../src/ui/dialog/symbols.cpp:602 +#. We are not in search all docs +#: ../src/ui/dialog/symbols.cpp:436 ../src/ui/dialog/symbols.cpp:995 +msgid "Searching..." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:437 ../src/ui/dialog/symbols.cpp:1002 +#: ../src/ui/dialog/symbols.cpp:1066 +msgid "Loading all symbols..." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:438 +msgid "Searching...." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:457 ../src/ui/dialog/symbols.cpp:464 +msgid "Search in all symbol sets..." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:458 +msgid "First search can be slow." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:460 ../src/ui/dialog/symbols.cpp:468 +#: ../src/ui/dialog/symbols.cpp:474 +msgid "No results found" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:461 +msgid "Try a different search term." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:469 ../src/ui/dialog/symbols.cpp:475 +msgid "" +"Try a different search term,\n" +"or switch to a different symbol set." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:471 +msgid "No symbols found" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:472 +msgid "" +"No symbols in current document.\n" +"Choose a different symbol set\n" +"or add a new symbol." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:798 ../src/ui/dialog/symbols.cpp:809 msgid "Unnamed Symbols" msgstr "" +#: ../src/ui/dialog/symbols.cpp:897 +msgid "notitle_" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:1169 +msgid "Symbol without title " +msgstr "" + #: ../src/ui/dialog/tags.cpp:256 ../src/ui/dialog/tags.cpp:554 #: ../src/ui/dialog/tags.cpp:668 ../src/ui/dialog/tags.cpp:931 msgid "Remove from selection set" @@ -22025,27 +22294,27 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:87 ../src/widgets/text-toolbar.cpp:1813 -#: ../src/widgets/text-toolbar.cpp:1814 +#: ../src/ui/dialog/text-edit.cpp:87 ../src/widgets/text-toolbar.cpp:2115 +#: ../src/widgets/text-toolbar.cpp:2116 msgid "Align left" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:88 ../src/widgets/text-toolbar.cpp:1819 -#: ../src/widgets/text-toolbar.cpp:1820 +#: ../src/ui/dialog/text-edit.cpp:88 ../src/widgets/text-toolbar.cpp:2121 +#: ../src/widgets/text-toolbar.cpp:2122 msgid "Align center" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:89 ../src/widgets/text-toolbar.cpp:1825 -#: ../src/widgets/text-toolbar.cpp:1826 +#: ../src/ui/dialog/text-edit.cpp:89 ../src/widgets/text-toolbar.cpp:2127 +#: ../src/widgets/text-toolbar.cpp:2128 msgid "Align right" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:90 ../src/widgets/text-toolbar.cpp:1832 +#: ../src/ui/dialog/text-edit.cpp:90 ../src/widgets/text-toolbar.cpp:2134 msgid "Justify (only flowed text)" msgstr "" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1863 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:2165 msgid "Horizontal text" msgstr "" @@ -22058,7 +22327,7 @@ msgid "Text path offset" msgstr "" #: ../src/ui/dialog/text-edit.cpp:550 ../src/ui/dialog/text-edit.cpp:637 -#: ../src/ui/tools/text-tool.cpp:1493 +#: ../src/ui/tools/text-tool.cpp:1489 msgid "Set text style" msgstr "" @@ -22570,68 +22839,68 @@ msgstr "" msgid "Change attribute" msgstr "" -#: ../src/ui/interface.cpp:767 +#: ../src/ui/interface.cpp:763 msgctxt "Interface setup" msgid "Default" msgstr "" -#: ../src/ui/interface.cpp:767 +#: ../src/ui/interface.cpp:763 msgid "Default interface setup" msgstr "" -#: ../src/ui/interface.cpp:768 +#: ../src/ui/interface.cpp:764 msgctxt "Interface setup" msgid "Custom" msgstr "" -#: ../src/ui/interface.cpp:768 +#: ../src/ui/interface.cpp:764 msgid "Setup for custom task" msgstr "" -#: ../src/ui/interface.cpp:769 +#: ../src/ui/interface.cpp:765 msgctxt "Interface setup" msgid "Wide" msgstr "" -#: ../src/ui/interface.cpp:769 +#: ../src/ui/interface.cpp:765 msgid "Setup for widescreen work" msgstr "" -#: ../src/ui/interface.cpp:888 +#: ../src/ui/interface.cpp:883 #, c-format msgid "Verb \"%s\" Unknown" msgstr "" -#: ../src/ui/interface.cpp:923 +#: ../src/ui/interface.cpp:918 msgid "Open _Recent" msgstr "" -#: ../src/ui/interface.cpp:1031 ../src/ui/interface.cpp:1117 -#: ../src/ui/interface.cpp:1220 ../src/ui/widget/selected-style.cpp:531 +#: ../src/ui/interface.cpp:1026 ../src/ui/interface.cpp:1112 +#: ../src/ui/interface.cpp:1215 ../src/ui/widget/selected-style.cpp:528 msgid "Drop color" msgstr "" -#: ../src/ui/interface.cpp:1070 ../src/ui/interface.cpp:1180 +#: ../src/ui/interface.cpp:1065 ../src/ui/interface.cpp:1175 msgid "Drop color on gradient" msgstr "" -#: ../src/ui/interface.cpp:1233 +#: ../src/ui/interface.cpp:1228 msgid "Could not parse SVG data" msgstr "" -#: ../src/ui/interface.cpp:1272 +#: ../src/ui/interface.cpp:1267 msgid "Drop SVG" msgstr "" -#: ../src/ui/interface.cpp:1285 +#: ../src/ui/interface.cpp:1280 msgid "Drop Symbol" msgstr "" -#: ../src/ui/interface.cpp:1308 +#: ../src/ui/interface.cpp:1303 msgid "Drop bitmap image" msgstr "" -#: ../src/ui/interface.cpp:1400 +#: ../src/ui/interface.cpp:1396 #, c-format msgid "" "A file named \"%s\" already exists. Do " @@ -22640,115 +22909,120 @@ msgid "" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -#: ../src/ui/interface.cpp:1407 ../share/extensions/web-set-att.inx.h:21 +#: ../src/ui/interface.cpp:1403 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 msgid "Replace" msgstr "" -#: ../src/ui/object-edit.cpp:479 +#: ../src/ui/shape-editor-knotholders.cpp:527 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" msgstr "" -#: ../src/ui/object-edit.cpp:484 +#: ../src/ui/shape-editor-knotholders.cpp:532 msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" msgstr "" -#: ../src/ui/object-edit.cpp:489 ../src/ui/object-edit.cpp:494 +#: ../src/ui/shape-editor-knotholders.cpp:537 +#: ../src/ui/shape-editor-knotholders.cpp:542 msgid "" "Adjust the width and height of the rectangle; with Ctrl to " "lock ratio or stretch in one dimension only" msgstr "" -#: ../src/ui/object-edit.cpp:499 +#: ../src/ui/shape-editor-knotholders.cpp:547 msgid "Drag to move the rectangle" msgstr "" -#: ../src/ui/object-edit.cpp:746 ../src/ui/object-edit.cpp:750 -#: ../src/ui/object-edit.cpp:754 ../src/ui/object-edit.cpp:758 +#: ../src/ui/shape-editor-knotholders.cpp:794 +#: ../src/ui/shape-editor-knotholders.cpp:798 +#: ../src/ui/shape-editor-knotholders.cpp:802 +#: ../src/ui/shape-editor-knotholders.cpp:806 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 "" -#: ../src/ui/object-edit.cpp:762 ../src/ui/object-edit.cpp:766 -#: ../src/ui/object-edit.cpp:770 ../src/ui/object-edit.cpp:774 +#: ../src/ui/shape-editor-knotholders.cpp:810 +#: ../src/ui/shape-editor-knotholders.cpp:814 +#: ../src/ui/shape-editor-knotholders.cpp:818 +#: ../src/ui/shape-editor-knotholders.cpp:822 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 "" -#: ../src/ui/object-edit.cpp:778 +#: ../src/ui/shape-editor-knotholders.cpp:826 msgid "Move the box in perspective" msgstr "" -#: ../src/ui/object-edit.cpp:1065 +#: ../src/ui/shape-editor-knotholders.cpp:1113 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1069 +#: ../src/ui/shape-editor-knotholders.cpp:1117 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1073 +#: ../src/ui/shape-editor-knotholders.cpp:1121 msgid "" "Position the start point of the arc or segment; with Shift to " "move with end point; with Ctrl to snap angle; drag inside the ellipse for arc, outside for segment" msgstr "" -#: ../src/ui/object-edit.cpp:1079 +#: ../src/ui/shape-editor-knotholders.cpp:1127 msgid "" "Position the end point of the arc or segment; with Shift to " "move with start point; with Ctrl to snap angle; drag " "inside the ellipse for arc, outside for segment" msgstr "" -#: ../src/ui/object-edit.cpp:1085 +#: ../src/ui/shape-editor-knotholders.cpp:1133 msgid "Drag to move the ellipse" msgstr "" -#: ../src/ui/object-edit.cpp:1259 +#: ../src/ui/shape-editor-knotholders.cpp:1307 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" msgstr "" -#: ../src/ui/object-edit.cpp:1267 +#: ../src/ui/shape-editor-knotholders.cpp:1315 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 "" -#: ../src/ui/object-edit.cpp:1274 +#: ../src/ui/shape-editor-knotholders.cpp:1322 msgid "Drag to move the star" msgstr "" -#: ../src/ui/object-edit.cpp:1510 +#: ../src/ui/shape-editor-knotholders.cpp:1558 msgid "Drag to move the spiral" msgstr "" -#: ../src/ui/object-edit.cpp:1514 +#: ../src/ui/shape-editor-knotholders.cpp:1562 msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" msgstr "" -#: ../src/ui/object-edit.cpp:1518 +#: ../src/ui/shape-editor-knotholders.cpp:1566 msgid "" "Roll/unroll the spiral from outside; with Ctrl to snap angle; " "with Shift to scale/rotate; with Alt to lock radius" msgstr "" -#: ../src/ui/object-edit.cpp:1568 +#: ../src/ui/shape-editor-knotholders.cpp:1616 msgid "Adjust the offset distance" msgstr "" -#: ../src/ui/object-edit.cpp:1605 +#: ../src/ui/shape-editor-knotholders.cpp:1653 msgid "Drag to resize the flowed text frame" msgstr "" @@ -22792,96 +23066,96 @@ msgid "" "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:313 +#: ../src/ui/tool/multi-path-manipulator.cpp:312 msgid "Retract handles" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:313 ../src/ui/tool/node.cpp:292 +#: ../src/ui/tool/multi-path-manipulator.cpp:312 ../src/ui/tool/node.cpp:292 msgid "Change node type" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:321 +#: ../src/ui/tool/multi-path-manipulator.cpp:320 msgid "Straighten segments" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:323 +#: ../src/ui/tool/multi-path-manipulator.cpp:322 msgid "Make segments curves" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:331 -#: ../src/ui/tool/multi-path-manipulator.cpp:345 +#: ../src/ui/tool/multi-path-manipulator.cpp:330 +#: ../src/ui/tool/multi-path-manipulator.cpp:344 msgid "Add nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:337 +#: ../src/ui/tool/multi-path-manipulator.cpp:336 msgid "Add extremum nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:352 +#: ../src/ui/tool/multi-path-manipulator.cpp:351 msgid "Duplicate nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:415 +#: ../src/ui/tool/multi-path-manipulator.cpp:414 #: ../src/widgets/node-toolbar.cpp:406 msgid "Join nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:422 +#: ../src/ui/tool/multi-path-manipulator.cpp:421 #: ../src/widgets/node-toolbar.cpp:417 msgid "Break nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:429 +#: ../src/ui/tool/multi-path-manipulator.cpp:428 msgid "Delete nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:775 +#: ../src/ui/tool/multi-path-manipulator.cpp:774 msgid "Move nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:778 +#: ../src/ui/tool/multi-path-manipulator.cpp:777 msgid "Move nodes horizontally" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:782 +#: ../src/ui/tool/multi-path-manipulator.cpp:781 msgid "Move nodes vertically" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:786 -#: ../src/ui/tool/multi-path-manipulator.cpp:789 +#: ../src/ui/tool/multi-path-manipulator.cpp:785 +#: ../src/ui/tool/multi-path-manipulator.cpp:788 msgid "Rotate nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:793 -#: ../src/ui/tool/multi-path-manipulator.cpp:799 +#: ../src/ui/tool/multi-path-manipulator.cpp:792 +#: ../src/ui/tool/multi-path-manipulator.cpp:798 msgid "Scale nodes uniformly" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:796 +#: ../src/ui/tool/multi-path-manipulator.cpp:795 msgid "Scale nodes" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:803 +#: ../src/ui/tool/multi-path-manipulator.cpp:802 msgid "Scale nodes horizontally" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:807 +#: ../src/ui/tool/multi-path-manipulator.cpp:806 msgid "Scale nodes vertically" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:811 +#: ../src/ui/tool/multi-path-manipulator.cpp:810 msgid "Skew nodes horizontally" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:815 +#: ../src/ui/tool/multi-path-manipulator.cpp:814 msgid "Skew nodes vertically" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:819 +#: ../src/ui/tool/multi-path-manipulator.cpp:818 msgid "Flip nodes horizontally" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:822 +#: ../src/ui/tool/multi-path-manipulator.cpp:821 msgid "Flip nodes vertically" msgstr "" @@ -22990,38 +23264,38 @@ msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" msgstr "" -#: ../src/ui/tool/node.cpp:1414 +#: ../src/ui/tool/node.cpp:1411 msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "" -#: ../src/ui/tool/node.cpp:1416 +#: ../src/ui/tool/node.cpp:1413 msgctxt "Path node tip" msgid "Shift: click to toggle selection" msgstr "" -#: ../src/ui/tool/node.cpp:1421 +#: ../src/ui/tool/node.cpp:1418 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" msgstr "" -#: ../src/ui/tool/node.cpp:1424 +#: ../src/ui/tool/node.cpp:1421 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" msgstr "" -#: ../src/ui/tool/node.cpp:1428 +#: ../src/ui/tool/node.cpp:1425 msgctxt "Path node tip" msgid "Alt: sculpt nodes" msgstr "" -#: ../src/ui/tool/node.cpp:1437 +#: ../src/ui/tool/node.cpp:1434 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1440 +#: ../src/ui/tool/node.cpp:1437 #, c-format msgctxt "Path node tip" msgid "" @@ -23029,7 +23303,7 @@ msgid "" "power" msgstr "" -#: ../src/ui/tool/node.cpp:1443 +#: ../src/ui/tool/node.cpp:1440 #, c-format msgctxt "Path node tip" msgid "" @@ -23037,7 +23311,7 @@ msgid "" "(more: Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1447 +#: ../src/ui/tool/node.cpp:1444 #, c-format msgctxt "Path node tip" msgid "" @@ -23045,7 +23319,7 @@ msgid "" "Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1450 +#: ../src/ui/tool/node.cpp:1447 #, c-format msgctxt "Path node tip" msgid "" @@ -23053,17 +23327,17 @@ msgid "" "(more: Shift, Ctrl, Alt). %g power" msgstr "" -#: ../src/ui/tool/node.cpp:1463 +#: ../src/ui/tool/node.cpp:1460 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" msgstr "" -#: ../src/ui/tool/node.cpp:1474 +#: ../src/ui/tool/node.cpp:1469 msgid "Symmetric node" msgstr "" -#: ../src/ui/tool/node.cpp:1475 +#: ../src/ui/tool/node.cpp:1470 msgid "Auto-smooth node" msgstr "" @@ -23277,7 +23551,7 @@ msgid "" "path. Arrow keys adjust width (left/right) and angle (up/down)." msgstr "" -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1629 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1625 msgid "" "Click to select or create text, drag to create flowed text; " "then type." @@ -23354,7 +23628,7 @@ msgid "" "ratio ellipse; with Shift to draw around the starting point" msgstr "" -#: ../src/ui/tools/arc-tool.cpp:427 +#: ../src/ui/tools/arc-tool.cpp:424 msgid "Create ellipse" msgstr "" @@ -23373,28 +23647,28 @@ msgstr "" msgid "Create 3D box" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:517 +#: ../src/ui/tools/calligraphic-tool.cpp:516 msgid "" "Guide path selected; start drawing along the guide with Ctrl" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:519 +#: ../src/ui/tools/calligraphic-tool.cpp:518 msgid "Select a guide path to track with Ctrl" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:654 +#: ../src/ui/tools/calligraphic-tool.cpp:653 msgid "Tracking: connection to guide path lost!" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:654 +#: ../src/ui/tools/calligraphic-tool.cpp:653 msgid "Tracking a guide path" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:657 +#: ../src/ui/tools/calligraphic-tool.cpp:656 msgid "Drawing a calligraphic stroke" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:960 +#: ../src/ui/tools/calligraphic-tool.cpp:958 msgid "Draw calligraphic stroke" msgstr "" @@ -23462,11 +23736,11 @@ msgstr "" msgid "Release mouse to set color." msgstr "" -#: ../src/ui/tools/eraser-tool.cpp:431 +#: ../src/ui/tools/eraser-tool.cpp:430 msgid "Drawing an eraser stroke" msgstr "" -#: ../src/ui/tools/eraser-tool.cpp:862 +#: ../src/ui/tools/eraser-tool.cpp:860 msgid "Draw eraser stroke" msgstr "" @@ -23537,24 +23811,24 @@ msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" #. We hit green anchor, closing Green-Blue-Red -#: ../src/ui/tools/freehand-base.cpp:660 ../src/ui/tools/freehand-base.cpp:742 +#: ../src/ui/tools/freehand-base.cpp:750 ../src/ui/tools/freehand-base.cpp:814 msgid "Path is closed." msgstr "" #. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:675 +#: ../src/ui/tools/freehand-base.cpp:765 msgid "Closing path." msgstr "" -#: ../src/ui/tools/freehand-base.cpp:818 +#: ../src/ui/tools/freehand-base.cpp:898 msgid "Draw path" msgstr "" -#: ../src/ui/tools/freehand-base.cpp:975 +#: ../src/ui/tools/freehand-base.cpp:1054 msgid "Creating single dot" msgstr "" -#: ../src/ui/tools/freehand-base.cpp:976 +#: ../src/ui/tools/freehand-base.cpp:1055 msgid "Create single dot" msgstr "" @@ -23609,34 +23883,34 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/gradient-tool.cpp:432 +#: ../src/ui/tools/gradient-tool.cpp:425 msgid "Simplify gradient" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:509 +#: ../src/ui/tools/gradient-tool.cpp:498 msgid "Create default gradient" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:731 +#: ../src/ui/tools/gradient-tool.cpp:557 ../src/ui/tools/mesh-tool.cpp:669 msgid "Draw around handles to select them" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:689 +#: ../src/ui/tools/gradient-tool.cpp:678 msgid "Ctrl: snap gradient angle" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:690 +#: ../src/ui/tools/gradient-tool.cpp:679 msgid "Shift: draw gradient around the starting point" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:955 ../src/ui/tools/mesh-tool.cpp:1195 +#: ../src/ui/tools/gradient-tool.cpp:944 ../src/ui/tools/mesh-tool.cpp:1133 #, 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/ui/tools/gradient-tool.cpp:959 ../src/ui/tools/mesh-tool.cpp:1199 +#: ../src/ui/tools/gradient-tool.cpp:948 ../src/ui/tools/mesh-tool.cpp:1137 msgid "Select objects on which to create gradient." msgstr "" @@ -23653,35 +23927,43 @@ msgstr "" msgid "Measure end, Shift+Click for position dialog" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:740 ../share/extensions/measure.inx.h:2 +#: ../src/ui/tools/measure-tool.cpp:746 ../share/extensions/measure.inx.h:2 msgid "Measure" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:745 +#: ../src/ui/tools/measure-tool.cpp:751 msgid "Base" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:754 +#: ../src/ui/tools/measure-tool.cpp:760 msgid "Add guides from measure tool" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:774 +#: ../src/ui/tools/measure-tool.cpp:780 msgid "Keep last measure on the canvas, for reference" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:794 +#: ../src/ui/tools/measure-tool.cpp:800 msgid "Convert measure to items" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:832 +#: ../src/ui/tools/measure-tool.cpp:838 msgid "Add global measure line" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:1195 +#: ../src/ui/tools/measure-tool.cpp:1197 +msgid "Selected" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:1199 +msgid "Not selected" +msgstr "" + +#: ../src/ui/tools/measure-tool.cpp:1210 msgid "Shift to measure into group" msgstr "" -#: ../src/ui/tools/measure-tool.cpp:1385 ../src/ui/tools/measure-tool.cpp:1387 +#: ../src/ui/tools/measure-tool.cpp:1403 ../src/ui/tools/measure-tool.cpp:1405 #, c-format msgid "Crossing %lu" msgstr "" @@ -23709,207 +23991,208 @@ msgid_plural "No mesh handles selected out of %d on %d selected objects" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/mesh-tool.cpp:359 +#: ../src/ui/tools/mesh-tool.cpp:297 msgid "Split mesh row/column" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:452 +#: ../src/ui/tools/mesh-tool.cpp:390 msgid "Toggled mesh path type." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:457 +#: ../src/ui/tools/mesh-tool.cpp:395 msgid "Approximated arc for mesh side." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:462 +#: ../src/ui/tools/mesh-tool.cpp:400 msgid "Toggled mesh tensors." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:467 +#: ../src/ui/tools/mesh-tool.cpp:405 msgid "Smoothed mesh corner color." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:472 +#: ../src/ui/tools/mesh-tool.cpp:410 msgid "Picked mesh corner color." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:477 +#: ../src/ui/tools/mesh-tool.cpp:415 msgid "Inserted new row or column." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:548 +#: ../src/ui/tools/mesh-tool.cpp:486 msgid "Fit mesh inside bounding box." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:1189 +#: ../src/ui/tools/mesh-tool.cpp:1127 msgid "Create mesh" msgstr "" -#: ../src/ui/tools/node-tool.cpp:643 +#: ../src/ui/tools/node-tool.cpp:647 msgctxt "Node tool tip" msgid "" "Shift: drag to add nodes to the selection, click to toggle object " "selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:647 +#: ../src/ui/tools/node-tool.cpp:651 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:676 +#: ../src/ui/tools/node-tool.cpp:680 #, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/node-tool.cpp:683 +#: ../src/ui/tools/node-tool.cpp:687 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" msgstr "" -#: ../src/ui/tools/node-tool.cpp:689 +#: ../src/ui/tools/node-tool.cpp:693 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:698 +#: ../src/ui/tools/node-tool.cpp:702 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "" -#: ../src/ui/tools/node-tool.cpp:701 +#: ../src/ui/tools/node-tool.cpp:705 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:706 +#: ../src/ui/tools/node-tool.cpp:710 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" -#: ../src/ui/tools/node-tool.cpp:709 +#: ../src/ui/tools/node-tool.cpp:713 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:211 ../src/ui/tools/pencil-tool.cpp:450 +#: ../src/ui/tools/pen-tool.cpp:214 ../src/ui/tools/pencil-tool.cpp:508 msgid "Drawing cancelled" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:451 ../src/ui/tools/pencil-tool.cpp:191 +#: ../src/ui/tools/pen-tool.cpp:460 ../src/ui/tools/pencil-tool.cpp:223 +#: ../src/ui/tools/pencil-tool.cpp:299 msgid "Continuing selected path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:461 ../src/ui/tools/pencil-tool.cpp:199 +#: ../src/ui/tools/pen-tool.cpp:470 ../src/ui/tools/pencil-tool.cpp:231 msgid "Creating new path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:463 ../src/ui/tools/pencil-tool.cpp:202 +#: ../src/ui/tools/pen-tool.cpp:472 ../src/ui/tools/pencil-tool.cpp:234 msgid "Appending to selected path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:628 +#: ../src/ui/tools/pen-tool.cpp:637 msgid "Click or click and drag to close and finish the path." msgstr "" -#: ../src/ui/tools/pen-tool.cpp:630 +#: ../src/ui/tools/pen-tool.cpp:639 msgid "" "Click or click and drag to close and finish the path. Shift" "+Click make a cusp node" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:642 +#: ../src/ui/tools/pen-tool.cpp:651 msgid "" "Click or click and drag to continue the path from this point." msgstr "" -#: ../src/ui/tools/pen-tool.cpp:644 +#: ../src/ui/tools/pen-tool.cpp:653 msgid "" "Click or click and drag to continue the path from this point. " "Shift+Click make a cusp node" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1779 +#: ../src/ui/tools/pen-tool.cpp:1799 #, c-format msgid "" -"Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter or Shift+Enter to finish the path" +"Curve segment: angle %3.2f°; with Shift+Click cusp node," +"ALT move previous, Enter or Shift+Enter to finish" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1780 +#: ../src/ui/tools/pen-tool.cpp:1800 #, c-format msgid "" -"Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter or Shift+Enter to finish the path" +"Line segment: angle %3.2f°; with Shift+Click cusp node," +"ALT move previous, Enter or Shift+Enter to finish" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1783 +#: ../src/ui/tools/pen-tool.cpp:1804 #, c-format msgid "" -"Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter or Shift+Enter to finish the path" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1784 +#: ../src/ui/tools/pen-tool.cpp:1805 #, c-format msgid "" -"Line segment: angle %3.2f°, distance %s; with Shift+Click " -"make a cusp node, Enter or Shift+Enter to finish the path" +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter or Shift+Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1801 +#: ../src/ui/tools/pen-tool.cpp:1823 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1825 +#: ../src/ui/tools/pen-tool.cpp:1847 #, c-format msgid "" "Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1826 +#: ../src/ui/tools/pen-tool.cpp:1848 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle, with Shift to move this handle only" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:1960 +#: ../src/ui/tools/pen-tool.cpp:1990 msgid "Drawing finished" msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:303 +#: ../src/ui/tools/pencil-tool.cpp:354 msgid "Release here to close and finish the path." msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:309 +#: ../src/ui/tools/pencil-tool.cpp:360 msgid "Drawing a freehand path" msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:314 +#: ../src/ui/tools/pencil-tool.cpp:365 msgid "Drag to continue the path from this point." msgstr "" #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:397 +#: ../src/ui/tools/pencil-tool.cpp:451 msgid "Finishing freehand" msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:499 +#: ../src/ui/tools/pencil-tool.cpp:557 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:526 +#: ../src/ui/tools/pencil-tool.cpp:584 msgid "Finishing freehand sketch" msgstr "" @@ -23919,35 +24202,35 @@ msgid "" "circular" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:424 +#: ../src/ui/tools/rect-tool.cpp:425 #, c-format msgid "" "Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:427 +#: ../src/ui/tools/rect-tool.cpp:430 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " "Shift to draw around the starting point" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:429 +#: ../src/ui/tools/rect-tool.cpp:434 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " "Shift to draw around the starting point" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:433 +#: ../src/ui/tools/rect-tool.cpp:440 #, c-format msgid "" "Rectangle: %s × %s; with Ctrl to make square or integer-" "ratio rectangle; with Shift to draw around the starting point" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:456 +#: ../src/ui/tools/rect-tool.cpp:461 msgid "Create rectangle" msgstr "" @@ -23969,33 +24252,33 @@ msgstr "" msgid "Selection canceled." msgstr "" -#: ../src/ui/tools/select-tool.cpp:637 +#: ../src/ui/tools/select-tool.cpp:639 msgid "" "Draw over objects to select them; release Alt to switch to " "rubberband selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:639 +#: ../src/ui/tools/select-tool.cpp:641 msgid "" "Drag around objects to select them; press Alt to switch to " "touch selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:880 +#: ../src/ui/tools/select-tool.cpp:882 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" -#: ../src/ui/tools/select-tool.cpp:881 +#: ../src/ui/tools/select-tool.cpp:883 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:882 +#: ../src/ui/tools/select-tool.cpp:884 msgid "" "Alt: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" msgstr "" -#: ../src/ui/tools/select-tool.cpp:1060 +#: ../src/ui/tools/select-tool.cpp:1062 msgid "Selected object is not a group. Cannot enter." msgstr "" @@ -24013,7 +24296,7 @@ msgid "" "Spiral: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -#: ../src/ui/tools/spiral-tool.cpp:398 +#: ../src/ui/tools/spiral-tool.cpp:397 msgid "Create spiral" msgstr "" @@ -24080,7 +24363,7 @@ msgstr "" msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -#: ../src/ui/tools/star-tool.cpp:424 +#: ../src/ui/tools/star-tool.cpp:422 msgid "Create star" msgstr "" @@ -24110,7 +24393,7 @@ msgstr "" msgid "Unicode (Enter to finish): %s: %s" msgstr "" -#: ../src/ui/tools/text-tool.cpp:499 ../src/ui/tools/text-tool.cpp:802 +#: ../src/ui/tools/text-tool.cpp:499 ../src/ui/tools/text-tool.cpp:798 msgid "Unicode (Enter to finish): " msgstr "" @@ -24119,93 +24402,93 @@ msgstr "" msgid "Flowed text frame: %s × %s" msgstr "" -#: ../src/ui/tools/text-tool.cpp:638 +#: ../src/ui/tools/text-tool.cpp:634 msgid "Type text; Enter to start new line." msgstr "" -#: ../src/ui/tools/text-tool.cpp:649 +#: ../src/ui/tools/text-tool.cpp:645 msgid "Flowed text is created." msgstr "" -#: ../src/ui/tools/text-tool.cpp:650 +#: ../src/ui/tools/text-tool.cpp:646 msgid "Create flowed text" msgstr "" -#: ../src/ui/tools/text-tool.cpp:652 +#: ../src/ui/tools/text-tool.cpp:648 msgid "" "The frame is too small for the current font size. Flowed text not " "created." msgstr "" -#: ../src/ui/tools/text-tool.cpp:788 +#: ../src/ui/tools/text-tool.cpp:784 msgid "No-break space" msgstr "" -#: ../src/ui/tools/text-tool.cpp:789 +#: ../src/ui/tools/text-tool.cpp:785 msgid "Insert no-break space" msgstr "" -#: ../src/ui/tools/text-tool.cpp:825 +#: ../src/ui/tools/text-tool.cpp:821 msgid "Make bold" msgstr "" -#: ../src/ui/tools/text-tool.cpp:842 +#: ../src/ui/tools/text-tool.cpp:838 msgid "Make italic" msgstr "" -#: ../src/ui/tools/text-tool.cpp:880 +#: ../src/ui/tools/text-tool.cpp:876 msgid "New line" msgstr "" -#: ../src/ui/tools/text-tool.cpp:921 +#: ../src/ui/tools/text-tool.cpp:917 msgid "Backspace" msgstr "" -#: ../src/ui/tools/text-tool.cpp:975 +#: ../src/ui/tools/text-tool.cpp:971 msgid "Kern to the left" msgstr "" -#: ../src/ui/tools/text-tool.cpp:999 +#: ../src/ui/tools/text-tool.cpp:995 msgid "Kern to the right" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1023 +#: ../src/ui/tools/text-tool.cpp:1019 msgid "Kern up" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1047 +#: ../src/ui/tools/text-tool.cpp:1043 msgid "Kern down" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1122 +#: ../src/ui/tools/text-tool.cpp:1118 msgid "Rotate counterclockwise" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1142 +#: ../src/ui/tools/text-tool.cpp:1138 msgid "Rotate clockwise" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1158 +#: ../src/ui/tools/text-tool.cpp:1154 msgid "Contract line spacing" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1164 +#: ../src/ui/tools/text-tool.cpp:1160 msgid "Contract letter spacing" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1181 +#: ../src/ui/tools/text-tool.cpp:1177 msgid "Expand line spacing" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1187 +#: ../src/ui/tools/text-tool.cpp:1183 msgid "Expand letter spacing" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1317 +#: ../src/ui/tools/text-tool.cpp:1313 msgid "Paste text" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1619 +#: ../src/ui/tools/text-tool.cpp:1615 #, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " @@ -24216,7 +24499,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/text-tool.cpp:1621 +#: ../src/ui/tools/text-tool.cpp:1617 #, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" @@ -24224,11 +24507,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/text-tool.cpp:1731 +#: ../src/ui/tools/text-tool.cpp:1727 msgid "Type text" msgstr "" -#: ../src/ui/tools/tool-base.cpp:713 +#: ../src/ui/tools/tool-base.cpp:717 msgid "Space+mouse move to pan canvas" msgstr "" @@ -24300,59 +24583,59 @@ msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1200 +#: ../src/ui/tools/tweak-tool.cpp:1197 msgid "Nothing selected! Select objects to tweak." msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1234 +#: ../src/ui/tools/tweak-tool.cpp:1231 msgid "Move tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1238 +#: ../src/ui/tools/tweak-tool.cpp:1235 msgid "Move in/out tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1242 +#: ../src/ui/tools/tweak-tool.cpp:1239 msgid "Move jitter tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1246 +#: ../src/ui/tools/tweak-tool.cpp:1243 msgid "Scale tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1250 +#: ../src/ui/tools/tweak-tool.cpp:1247 msgid "Rotate tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1254 +#: ../src/ui/tools/tweak-tool.cpp:1251 msgid "Duplicate/delete tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1258 +#: ../src/ui/tools/tweak-tool.cpp:1255 msgid "Push path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1262 +#: ../src/ui/tools/tweak-tool.cpp:1259 msgid "Shrink/grow path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1266 +#: ../src/ui/tools/tweak-tool.cpp:1263 msgid "Attract/repel path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1270 +#: ../src/ui/tools/tweak-tool.cpp:1267 msgid "Roughen path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1274 +#: ../src/ui/tools/tweak-tool.cpp:1271 msgid "Color paint tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1278 +#: ../src/ui/tools/tweak-tool.cpp:1275 msgid "Color jitter tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1282 +#: ../src/ui/tools/tweak-tool.cpp:1279 msgid "Blur tweak" msgstr "" @@ -24361,18 +24644,18 @@ msgid "Hexadecimal RGBA value of the color" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:154 -#: ../src/ui/widget/color-scales.cpp:355 +#: ../src/ui/widget/color-scales.cpp:366 msgid "_R:" msgstr "" #. TYPE_RGB_16 #: ../src/ui/widget/color-icc-selector.cpp:155 -#: ../src/ui/widget/color-scales.cpp:358 +#: ../src/ui/widget/color-scales.cpp:369 msgid "_G:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:156 -#: ../src/ui/widget/color-scales.cpp:361 +#: ../src/ui/widget/color-scales.cpp:372 msgid "_B:" msgstr "" @@ -24384,26 +24667,26 @@ msgstr "" #. TYPE_GRAY_16 #: ../src/ui/widget/color-icc-selector.cpp:160 #: ../src/ui/widget/color-icc-selector.cpp:164 -#: ../src/ui/widget/color-scales.cpp:381 +#: ../src/ui/widget/color-scales.cpp:393 ../src/ui/widget/color-scales.cpp:429 msgid "_H:" msgstr "" #. TYPE_HSV_16 #: ../src/ui/widget/color-icc-selector.cpp:161 #: ../src/ui/widget/color-icc-selector.cpp:166 -#: ../src/ui/widget/color-scales.cpp:384 +#: ../src/ui/widget/color-scales.cpp:398 ../src/ui/widget/color-scales.cpp:434 msgid "_S:" msgstr "" #. TYPE_HLS_16 #: ../src/ui/widget/color-icc-selector.cpp:165 -#: ../src/ui/widget/color-scales.cpp:387 +#: ../src/ui/widget/color-scales.cpp:402 msgid "_L:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:168 #: ../src/ui/widget/color-icc-selector.cpp:173 -#: ../src/ui/widget/color-scales.cpp:409 +#: ../src/ui/widget/color-scales.cpp:464 msgid "_C:" msgstr "" @@ -24411,18 +24694,18 @@ msgstr "" #. TYPE_CMY_16 #: ../src/ui/widget/color-icc-selector.cpp:169 #: ../src/ui/widget/color-icc-selector.cpp:174 -#: ../src/ui/widget/color-scales.cpp:412 +#: ../src/ui/widget/color-scales.cpp:467 msgid "_M:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:170 #: ../src/ui/widget/color-icc-selector.cpp:175 -#: ../src/ui/widget/color-scales.cpp:415 +#: ../src/ui/widget/color-scales.cpp:470 msgid "_Y:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:171 -#: ../src/ui/widget/color-scales.cpp:418 +#: ../src/ui/widget/color-scales.cpp:473 msgid "_K:" msgstr "" @@ -24440,40 +24723,41 @@ msgstr "" #. Label #: ../src/ui/widget/color-icc-selector.cpp:469 -#: ../src/ui/widget/color-scales.cpp:364 ../src/ui/widget/color-scales.cpp:390 -#: ../src/ui/widget/color-scales.cpp:421 +#: ../src/ui/widget/color-scales.cpp:375 ../src/ui/widget/color-scales.cpp:406 +#: ../src/ui/widget/color-scales.cpp:442 ../src/ui/widget/color-scales.cpp:476 #: ../src/ui/widget/color-wheel-selector.cpp:64 msgid "_A:" msgstr "" #: ../src/ui/widget/color-icc-selector.cpp:481 #: ../src/ui/widget/color-icc-selector.cpp:492 -#: ../src/ui/widget/color-scales.cpp:365 ../src/ui/widget/color-scales.cpp:366 -#: ../src/ui/widget/color-scales.cpp:391 ../src/ui/widget/color-scales.cpp:392 -#: ../src/ui/widget/color-scales.cpp:422 ../src/ui/widget/color-scales.cpp:423 +#: ../src/ui/widget/color-scales.cpp:376 ../src/ui/widget/color-scales.cpp:377 +#: ../src/ui/widget/color-scales.cpp:407 ../src/ui/widget/color-scales.cpp:408 +#: ../src/ui/widget/color-scales.cpp:443 ../src/ui/widget/color-scales.cpp:444 +#: ../src/ui/widget/color-scales.cpp:477 ../src/ui/widget/color-scales.cpp:478 #: ../src/ui/widget/color-wheel-selector.cpp:87 #: ../src/ui/widget/color-wheel-selector.cpp:109 msgid "Alpha (opacity)" msgstr "" -#: ../src/ui/widget/color-notebook.cpp:155 +#: ../src/ui/widget/color-notebook.cpp:158 msgid "Color Managed" msgstr "" -#: ../src/ui/widget/color-notebook.cpp:162 +#: ../src/ui/widget/color-notebook.cpp:165 msgid "Out of gamut!" msgstr "" -#: ../src/ui/widget/color-notebook.cpp:169 +#: ../src/ui/widget/color-notebook.cpp:172 msgid "Too much ink!" msgstr "" -#: ../src/ui/widget/color-notebook.cpp:180 ../src/verbs.cpp:2927 +#: ../src/ui/widget/color-notebook.cpp:183 ../src/verbs.cpp:2951 msgid "Pick colors from image" msgstr "" #. Create RGBA entry and color preview -#: ../src/ui/widget/color-notebook.cpp:185 +#: ../src/ui/widget/color-notebook.cpp:188 msgid "RGBA_:" msgstr "" @@ -24489,6 +24773,19 @@ msgstr "" msgid "CMYK" msgstr "" +#: ../src/ui/widget/color-scales.cpp:43 +msgid "HSV" +msgstr "" + +#: ../src/ui/widget/color-scales.cpp:438 +msgid "_V:" +msgstr "" + +#: ../src/ui/widget/color-scales.cpp:439 ../src/ui/widget/color-scales.cpp:440 +#: ../src/widgets/sp-xmlview-attr-list.cpp:55 +msgid "Value" +msgstr "" + #: ../src/ui/widget/filter-effect-chooser.cpp:22 msgid "_Blur:" msgstr "" @@ -24794,18 +25091,18 @@ msgid "Document license updated" msgstr "" #: ../src/ui/widget/object-composite-settings.cpp:39 -#: ../src/ui/widget/selected-style.cpp:1057 -#: ../src/ui/widget/selected-style.cpp:1058 +#: ../src/ui/widget/selected-style.cpp:1054 +#: ../src/ui/widget/selected-style.cpp:1055 msgid "Opacity (%)" msgstr "" -#: ../src/ui/widget/object-composite-settings.cpp:152 +#: ../src/ui/widget/object-composite-settings.cpp:153 msgid "Change blur" msgstr "" -#: ../src/ui/widget/object-composite-settings.cpp:192 -#: ../src/ui/widget/selected-style.cpp:881 -#: ../src/ui/widget/selected-style.cpp:1175 +#: ../src/ui/widget/object-composite-settings.cpp:193 +#: ../src/ui/widget/selected-style.cpp:878 +#: ../src/ui/widget/selected-style.cpp:1172 msgid "Change opacity" msgstr "" @@ -24822,70 +25119,78 @@ msgid "Height of paper" msgstr "" #: ../src/ui/widget/page-sizer.cpp:222 -msgid "T_op margin:" +msgid "Loc_k margins" msgstr "" #: ../src/ui/widget/page-sizer.cpp:222 +msgid "Lock margins" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:224 +msgid "T_op margin:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:224 msgid "Top margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:223 +#: ../src/ui/widget/page-sizer.cpp:225 msgid "L_eft:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:223 +#: ../src/ui/widget/page-sizer.cpp:225 msgid "Left margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:224 +#: ../src/ui/widget/page-sizer.cpp:226 msgid "Ri_ght:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:224 +#: ../src/ui/widget/page-sizer.cpp:226 msgid "Right margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:225 +#: ../src/ui/widget/page-sizer.cpp:227 msgid "Botto_m:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:225 +#: ../src/ui/widget/page-sizer.cpp:227 msgid "Bottom margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:227 +#: ../src/ui/widget/page-sizer.cpp:229 msgid "Scale _x:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:227 +#: ../src/ui/widget/page-sizer.cpp:229 msgid "Scale X" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:228 +#: ../src/ui/widget/page-sizer.cpp:230 msgid "Scale _y:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:228 +#: ../src/ui/widget/page-sizer.cpp:230 msgid "" "While SVG allows non-uniform scaling it is recommended to use only uniform " "scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' " "directly." msgstr "" -#: ../src/ui/widget/page-sizer.cpp:306 +#: ../src/ui/widget/page-sizer.cpp:307 msgid "Orientation:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:309 +#: ../src/ui/widget/page-sizer.cpp:310 msgid "_Landscape" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:314 +#: ../src/ui/widget/page-sizer.cpp:315 msgid "_Portrait" msgstr "" #. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:333 +#: ../src/ui/widget/page-sizer.cpp:334 msgid "Custom size" msgstr "" @@ -24893,131 +25198,131 @@ msgstr "" msgid "Resi_ze page to content..." msgstr "" -#: ../src/ui/widget/page-sizer.cpp:403 +#: ../src/ui/widget/page-sizer.cpp:417 msgid "_Resize page to drawing or selection (Ctrl+Shift+R)" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:404 +#: ../src/ui/widget/page-sizer.cpp:418 msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:424 +#: ../src/ui/widget/page-sizer.cpp:438 msgid "_Viewbox..." msgstr "" -#: ../src/ui/widget/page-sizer.cpp:520 +#: ../src/ui/widget/page-sizer.cpp:538 msgid "Set page size" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:766 +#: ../src/ui/widget/page-sizer.cpp:784 msgid "User units per " msgstr "" -#: ../src/ui/widget/page-sizer.cpp:862 +#: ../src/ui/widget/page-sizer.cpp:880 msgid "Set page scale" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:888 +#: ../src/ui/widget/page-sizer.cpp:906 msgid "Set 'viewBox'" msgstr "" -#: ../src/ui/widget/panel.cpp:111 +#: ../src/ui/widget/panel.cpp:110 msgid "List" msgstr "" -#: ../src/ui/widget/panel.cpp:134 +#: ../src/ui/widget/panel.cpp:133 msgctxt "Swatches" msgid "Size" msgstr "" -#: ../src/ui/widget/panel.cpp:138 +#: ../src/ui/widget/panel.cpp:137 msgctxt "Swatches height" msgid "Tiny" msgstr "" -#: ../src/ui/widget/panel.cpp:139 +#: ../src/ui/widget/panel.cpp:138 msgctxt "Swatches height" msgid "Small" msgstr "" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:139 msgctxt "Swatches height" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:141 +#: ../src/ui/widget/panel.cpp:140 msgctxt "Swatches height" msgid "Large" msgstr "" -#: ../src/ui/widget/panel.cpp:142 +#: ../src/ui/widget/panel.cpp:141 msgctxt "Swatches height" msgid "Huge" msgstr "" -#: ../src/ui/widget/panel.cpp:164 +#: ../src/ui/widget/panel.cpp:163 msgctxt "Swatches" msgid "Width" msgstr "" -#: ../src/ui/widget/panel.cpp:168 +#: ../src/ui/widget/panel.cpp:167 msgctxt "Swatches width" msgid "Narrower" msgstr "" -#: ../src/ui/widget/panel.cpp:169 +#: ../src/ui/widget/panel.cpp:168 msgctxt "Swatches width" msgid "Narrow" msgstr "" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:169 msgctxt "Swatches width" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:171 +#: ../src/ui/widget/panel.cpp:170 msgctxt "Swatches width" msgid "Wide" msgstr "" -#: ../src/ui/widget/panel.cpp:172 +#: ../src/ui/widget/panel.cpp:171 msgctxt "Swatches width" msgid "Wider" msgstr "" -#: ../src/ui/widget/panel.cpp:202 +#: ../src/ui/widget/panel.cpp:201 msgctxt "Swatches" msgid "Border" msgstr "" -#: ../src/ui/widget/panel.cpp:206 +#: ../src/ui/widget/panel.cpp:205 msgctxt "Swatches border" msgid "None" msgstr "" -#: ../src/ui/widget/panel.cpp:207 +#: ../src/ui/widget/panel.cpp:206 msgctxt "Swatches border" msgid "Solid" msgstr "" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:207 msgctxt "Swatches border" msgid "Wide" msgstr "" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:239 +#: ../src/ui/widget/panel.cpp:238 msgctxt "Swatches" msgid "Wrap" msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:709 +#: ../src/ui/widget/preferences-widget.cpp:711 msgid "_Browse..." msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:795 +#: ../src/ui/widget/preferences-widget.cpp:797 msgid "Select a bitmap editor" msgstr "" @@ -25061,295 +25366,295 @@ msgid "" "will be rendered exactly as displayed." msgstr "" -#: ../src/ui/widget/selected-style.cpp:122 +#: ../src/ui/widget/selected-style.cpp:121 #: ../src/ui/widget/style-swatch.cpp:115 msgid "Fill:" msgstr "" -#: ../src/ui/widget/selected-style.cpp:124 +#: ../src/ui/widget/selected-style.cpp:123 msgid "O:" msgstr "" -#: ../src/ui/widget/selected-style.cpp:183 +#: ../src/ui/widget/selected-style.cpp:181 msgid "N/A" msgstr "" -#: ../src/ui/widget/selected-style.cpp:186 -#: ../src/ui/widget/selected-style.cpp:1050 -#: ../src/ui/widget/selected-style.cpp:1051 +#: ../src/ui/widget/selected-style.cpp:184 +#: ../src/ui/widget/selected-style.cpp:1047 +#: ../src/ui/widget/selected-style.cpp:1048 #: ../src/widgets/gradient-toolbar.cpp:163 msgid "Nothing selected" msgstr "" -#: ../src/ui/widget/selected-style.cpp:189 +#: ../src/ui/widget/selected-style.cpp:187 msgctxt "Fill" msgid "None" msgstr "" -#: ../src/ui/widget/selected-style.cpp:191 +#: ../src/ui/widget/selected-style.cpp:189 msgctxt "Stroke" msgid "None" msgstr "" -#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/selected-style.cpp:193 #: ../src/ui/widget/style-swatch.cpp:316 msgctxt "Fill and stroke" msgid "No fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/selected-style.cpp:193 #: ../src/ui/widget/style-swatch.cpp:316 msgctxt "Fill and stroke" msgid "No stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:197 -#: ../src/ui/widget/style-swatch.cpp:295 ../src/widgets/paint-selector.cpp:219 +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:295 ../src/widgets/paint-selector.cpp:221 msgid "Pattern" msgstr "" -#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/selected-style.cpp:198 #: ../src/ui/widget/style-swatch.cpp:297 msgid "Pattern fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/selected-style.cpp:198 #: ../src/ui/widget/style-swatch.cpp:297 msgid "Pattern stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:202 +#: ../src/ui/widget/selected-style.cpp:200 msgid "L" msgstr "" -#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/selected-style.cpp:203 #: ../src/ui/widget/style-swatch.cpp:289 msgid "Linear gradient fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:205 +#: ../src/ui/widget/selected-style.cpp:203 #: ../src/ui/widget/style-swatch.cpp:289 msgid "Linear gradient stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:212 +#: ../src/ui/widget/selected-style.cpp:210 msgid "R" msgstr "" -#: ../src/ui/widget/selected-style.cpp:215 +#: ../src/ui/widget/selected-style.cpp:213 #: ../src/ui/widget/style-swatch.cpp:293 msgid "Radial gradient fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:215 +#: ../src/ui/widget/selected-style.cpp:213 #: ../src/ui/widget/style-swatch.cpp:293 msgid "Radial gradient stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:223 +#: ../src/ui/widget/selected-style.cpp:221 msgid "M" msgstr "" -#: ../src/ui/widget/selected-style.cpp:226 +#: ../src/ui/widget/selected-style.cpp:224 msgid "Mesh gradient fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:226 +#: ../src/ui/widget/selected-style.cpp:224 msgid "Mesh gradient stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:234 +#: ../src/ui/widget/selected-style.cpp:232 msgid "Different" msgstr "" -#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:235 msgid "Different fills" msgstr "" -#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:235 msgid "Different strokes" msgstr "" -#: ../src/ui/widget/selected-style.cpp:239 +#: ../src/ui/widget/selected-style.cpp:237 #: ../src/ui/widget/style-swatch.cpp:319 msgid "Unset" msgstr "" #. TRANSLATORS COMMENT: unset is a verb here -#: ../src/ui/widget/selected-style.cpp:242 -#: ../src/ui/widget/selected-style.cpp:300 -#: ../src/ui/widget/selected-style.cpp:562 +#: ../src/ui/widget/selected-style.cpp:240 +#: ../src/ui/widget/selected-style.cpp:298 +#: ../src/ui/widget/selected-style.cpp:559 #: ../src/ui/widget/style-swatch.cpp:321 ../src/widgets/fill-style.cpp:811 msgid "Unset fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:242 -#: ../src/ui/widget/selected-style.cpp:300 -#: ../src/ui/widget/selected-style.cpp:578 +#: ../src/ui/widget/selected-style.cpp:240 +#: ../src/ui/widget/selected-style.cpp:298 +#: ../src/ui/widget/selected-style.cpp:575 #: ../src/ui/widget/style-swatch.cpp:321 ../src/widgets/fill-style.cpp:811 msgid "Unset stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:245 +#: ../src/ui/widget/selected-style.cpp:243 msgid "Flat color fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:245 +#: ../src/ui/widget/selected-style.cpp:243 msgid "Flat color stroke" msgstr "" #. TRANSLATOR COMMENT: A means "Averaged" -#: ../src/ui/widget/selected-style.cpp:248 +#: ../src/ui/widget/selected-style.cpp:246 msgid "a" msgstr "" -#: ../src/ui/widget/selected-style.cpp:251 +#: ../src/ui/widget/selected-style.cpp:249 msgid "Fill is averaged over selected objects" msgstr "" -#: ../src/ui/widget/selected-style.cpp:251 +#: ../src/ui/widget/selected-style.cpp:249 msgid "Stroke is averaged over selected objects" msgstr "" #. TRANSLATOR COMMENT: M means "Multiple" -#: ../src/ui/widget/selected-style.cpp:254 +#: ../src/ui/widget/selected-style.cpp:252 msgid "m" msgstr "" -#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/ui/widget/selected-style.cpp:255 msgid "Multiple selected objects have the same fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:257 +#: ../src/ui/widget/selected-style.cpp:255 msgid "Multiple selected objects have the same stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:259 +#: ../src/ui/widget/selected-style.cpp:257 msgid "Edit fill..." msgstr "" -#: ../src/ui/widget/selected-style.cpp:259 +#: ../src/ui/widget/selected-style.cpp:257 msgid "Edit stroke..." msgstr "" -#: ../src/ui/widget/selected-style.cpp:263 +#: ../src/ui/widget/selected-style.cpp:261 msgid "Last set color" msgstr "" -#: ../src/ui/widget/selected-style.cpp:267 +#: ../src/ui/widget/selected-style.cpp:265 msgid "Last selected color" msgstr "" -#: ../src/ui/widget/selected-style.cpp:283 +#: ../src/ui/widget/selected-style.cpp:281 msgid "Copy color" msgstr "" -#: ../src/ui/widget/selected-style.cpp:287 +#: ../src/ui/widget/selected-style.cpp:285 msgid "Paste color" msgstr "" -#: ../src/ui/widget/selected-style.cpp:291 ../src/verbs.cpp:2688 +#: ../src/ui/widget/selected-style.cpp:289 ../src/verbs.cpp:2708 msgid "Swap fill and stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:587 -#: ../src/ui/widget/selected-style.cpp:596 +#: ../src/ui/widget/selected-style.cpp:293 +#: ../src/ui/widget/selected-style.cpp:584 +#: ../src/ui/widget/selected-style.cpp:593 msgid "Make fill opaque" msgstr "" -#: ../src/ui/widget/selected-style.cpp:295 +#: ../src/ui/widget/selected-style.cpp:293 msgid "Make stroke opaque" msgstr "" -#: ../src/ui/widget/selected-style.cpp:304 -#: ../src/ui/widget/selected-style.cpp:544 ../src/widgets/fill-style.cpp:510 +#: ../src/ui/widget/selected-style.cpp:302 +#: ../src/ui/widget/selected-style.cpp:541 ../src/widgets/fill-style.cpp:510 msgid "Remove fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:304 -#: ../src/ui/widget/selected-style.cpp:553 ../src/widgets/fill-style.cpp:510 +#: ../src/ui/widget/selected-style.cpp:302 +#: ../src/ui/widget/selected-style.cpp:550 ../src/widgets/fill-style.cpp:510 msgid "Remove stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:608 +#: ../src/ui/widget/selected-style.cpp:605 msgid "Apply last set color to fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:620 +#: ../src/ui/widget/selected-style.cpp:617 msgid "Apply last set color to stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:631 +#: ../src/ui/widget/selected-style.cpp:628 msgid "Apply last selected color to fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:642 +#: ../src/ui/widget/selected-style.cpp:639 msgid "Apply last selected color to stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:668 +#: ../src/ui/widget/selected-style.cpp:665 msgid "Invert fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:692 +#: ../src/ui/widget/selected-style.cpp:689 msgid "Invert stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:704 +#: ../src/ui/widget/selected-style.cpp:701 msgid "White fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:716 +#: ../src/ui/widget/selected-style.cpp:713 msgid "White stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:728 +#: ../src/ui/widget/selected-style.cpp:725 msgid "Black fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:740 +#: ../src/ui/widget/selected-style.cpp:737 msgid "Black stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:783 +#: ../src/ui/widget/selected-style.cpp:780 msgid "Paste fill" msgstr "" -#: ../src/ui/widget/selected-style.cpp:801 +#: ../src/ui/widget/selected-style.cpp:798 msgid "Paste stroke" msgstr "" -#: ../src/ui/widget/selected-style.cpp:908 +#: ../src/ui/widget/selected-style.cpp:905 msgid "Change stroke width" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1011 +#: ../src/ui/widget/selected-style.cpp:1008 msgid ", drag to adjust" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1092 +#: ../src/ui/widget/selected-style.cpp:1089 #, c-format msgid "Stroke width: %.5g%s%s" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1096 +#: ../src/ui/widget/selected-style.cpp:1093 msgid " (averaged)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1122 +#: ../src/ui/widget/selected-style.cpp:1119 msgid "0 (transparent)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1146 +#: ../src/ui/widget/selected-style.cpp:1143 msgid "100% (opaque)" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1312 +#: ../src/ui/widget/selected-style.cpp:1309 msgid "Adjust alpha" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1314 +#: ../src/ui/widget/selected-style.cpp:1311 #, c-format msgid "" "Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrlsaturation: was %.3g, now %.3g (diff %.3g); with " @@ -25369,11 +25674,11 @@ msgid "" "modifiers to adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1324 +#: ../src/ui/widget/selected-style.cpp:1321 msgid "Adjust lightness" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1326 +#: ../src/ui/widget/selected-style.cpp:1323 #, c-format msgid "" "Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " @@ -25381,11 +25686,11 @@ msgid "" "modifiers to adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1330 +#: ../src/ui/widget/selected-style.cpp:1327 msgid "Adjust hue" msgstr "" -#: ../src/ui/widget/selected-style.cpp:1332 +#: ../src/ui/widget/selected-style.cpp:1329 #, c-format msgid "" "Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shiftstroke width: was %.3g, now %.3g (diff %.3g)" msgstr "" #. TRANSLATORS: "Link" means to _link_ two sliders together -#: ../src/ui/widget/spin-scale.cpp:123 ../src/ui/widget/spin-slider.cpp:114 +#: ../src/ui/widget/spin-scale.cpp:124 ../src/ui/widget/spin-slider.cpp:115 msgctxt "Sliders" msgid "Link" msgstr "" @@ -25489,2487 +25794,2505 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/verbs.cpp:132 +#: ../src/verbs.cpp:135 msgid "File" msgstr "" -#: ../src/verbs.cpp:227 ../share/extensions/interp_att_g.inx.h:24 +#: ../src/verbs.cpp:230 ../share/extensions/interp_att_g.inx.h:27 msgid "Tag" msgstr "" -#: ../src/verbs.cpp:246 +#: ../src/verbs.cpp:249 msgid "Context" msgstr "" -#: ../src/verbs.cpp:265 ../src/verbs.cpp:2430 +#: ../src/verbs.cpp:268 ../src/verbs.cpp:2450 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" msgstr "" -#: ../src/verbs.cpp:285 +#: ../src/verbs.cpp:288 msgid "Dialog" msgstr "" -#: ../src/verbs.cpp:1323 +#: ../src/verbs.cpp:1335 msgid "Switch to next layer" msgstr "" -#: ../src/verbs.cpp:1324 +#: ../src/verbs.cpp:1336 msgid "Switched to next layer." msgstr "" -#: ../src/verbs.cpp:1326 +#: ../src/verbs.cpp:1338 msgid "Cannot go past last layer." msgstr "" -#: ../src/verbs.cpp:1335 +#: ../src/verbs.cpp:1347 msgid "Switch to previous layer" msgstr "" -#: ../src/verbs.cpp:1336 +#: ../src/verbs.cpp:1348 msgid "Switched to previous layer." msgstr "" -#: ../src/verbs.cpp:1338 +#: ../src/verbs.cpp:1350 msgid "Cannot go before first layer." msgstr "" -#: ../src/verbs.cpp:1359 ../src/verbs.cpp:1426 ../src/verbs.cpp:1462 -#: ../src/verbs.cpp:1468 ../src/verbs.cpp:1492 ../src/verbs.cpp:1507 +#: ../src/verbs.cpp:1371 ../src/verbs.cpp:1438 ../src/verbs.cpp:1474 +#: ../src/verbs.cpp:1480 ../src/verbs.cpp:1504 ../src/verbs.cpp:1519 msgid "No current layer." msgstr "" -#: ../src/verbs.cpp:1388 ../src/verbs.cpp:1392 +#: ../src/verbs.cpp:1400 ../src/verbs.cpp:1404 #, c-format msgid "Raised layer %s." msgstr "" -#: ../src/verbs.cpp:1389 +#: ../src/verbs.cpp:1401 msgid "Layer to top" msgstr "" -#: ../src/verbs.cpp:1393 +#: ../src/verbs.cpp:1405 msgid "Raise layer" msgstr "" -#: ../src/verbs.cpp:1396 ../src/verbs.cpp:1400 +#: ../src/verbs.cpp:1408 ../src/verbs.cpp:1412 #, c-format msgid "Lowered layer %s." msgstr "" -#: ../src/verbs.cpp:1397 +#: ../src/verbs.cpp:1409 msgid "Layer to bottom" msgstr "" -#: ../src/verbs.cpp:1401 +#: ../src/verbs.cpp:1413 msgid "Lower layer" msgstr "" -#: ../src/verbs.cpp:1410 +#: ../src/verbs.cpp:1422 msgid "Cannot move layer any further." msgstr "" -#: ../src/verbs.cpp:1421 +#: ../src/verbs.cpp:1433 msgid "Duplicate layer" msgstr "" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1436 msgid "Duplicated layer." msgstr "" -#: ../src/verbs.cpp:1457 +#: ../src/verbs.cpp:1469 msgid "Delete layer" msgstr "" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1460 +#: ../src/verbs.cpp:1472 msgid "Deleted layer." msgstr "" -#: ../src/verbs.cpp:1477 +#: ../src/verbs.cpp:1489 msgid "Show all layers" msgstr "" -#: ../src/verbs.cpp:1482 +#: ../src/verbs.cpp:1494 msgid "Hide all layers" msgstr "" -#: ../src/verbs.cpp:1487 +#: ../src/verbs.cpp:1499 msgid "Lock all layers" msgstr "" -#: ../src/verbs.cpp:1501 +#: ../src/verbs.cpp:1513 msgid "Unlock all layers" msgstr "" -#: ../src/verbs.cpp:1585 +#: ../src/verbs.cpp:1597 msgid "Flip horizontally" msgstr "" -#: ../src/verbs.cpp:1590 +#: ../src/verbs.cpp:1602 msgid "Flip vertically" msgstr "" -#: ../src/verbs.cpp:1638 +#: ../src/verbs.cpp:1658 #, c-format msgid "Set %d" msgstr "" -#: ../src/verbs.cpp:1647 ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:1667 ../src/verbs.cpp:2914 msgid "Create new selection set" msgstr "" #. TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language, #. then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language #. code); otherwise leave as "tutorial-basic.svg". -#: ../src/verbs.cpp:2308 +#: ../src/verbs.cpp:2328 msgid "tutorial-basic.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2312 +#: ../src/verbs.cpp:2332 msgid "tutorial-shapes.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2316 +#: ../src/verbs.cpp:2336 msgid "tutorial-advanced.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2322 +#: ../src/verbs.cpp:2342 msgid "tutorial-tracing.svg" msgstr "" -#: ../src/verbs.cpp:2327 +#: ../src/verbs.cpp:2347 msgid "tutorial-tracing-pixelart.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2331 +#: ../src/verbs.cpp:2351 msgid "tutorial-calligraphy.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2335 +#: ../src/verbs.cpp:2355 msgid "tutorial-interpolate.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2339 +#: ../src/verbs.cpp:2359 msgid "tutorial-elements.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2343 +#: ../src/verbs.cpp:2363 msgid "tutorial-tips.svg" msgstr "" -#: ../src/verbs.cpp:2529 ../src/verbs.cpp:3194 +#: ../src/verbs.cpp:2549 ../src/verbs.cpp:3218 msgid "Unlock all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2533 ../src/verbs.cpp:3196 +#: ../src/verbs.cpp:2553 ../src/verbs.cpp:3220 msgid "Unlock all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2537 ../src/verbs.cpp:3198 +#: ../src/verbs.cpp:2557 ../src/verbs.cpp:3222 msgid "Unhide all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2541 ../src/verbs.cpp:3200 +#: ../src/verbs.cpp:2561 ../src/verbs.cpp:3224 msgid "Unhide all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2576 msgctxt "Verb" msgid "None" msgstr "" -#: ../src/verbs.cpp:2556 +#: ../src/verbs.cpp:2576 msgid "Does nothing" msgstr "" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2579 msgid "Create new document from the default template" msgstr "" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2581 msgid "_Open..." msgstr "" -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2582 msgid "Open an existing document" msgstr "" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2583 msgid "Re_vert" msgstr "" -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2584 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" -#: ../src/verbs.cpp:2565 +#: ../src/verbs.cpp:2585 msgid "Save document" msgstr "" -#: ../src/verbs.cpp:2567 +#: ../src/verbs.cpp:2587 msgid "Save _As..." msgstr "" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2588 msgid "Save document under a new name" msgstr "" -#: ../src/verbs.cpp:2569 +#: ../src/verbs.cpp:2589 msgid "Save a Cop_y..." msgstr "" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2590 msgid "Save a copy of the document under a new name" msgstr "" -#: ../src/verbs.cpp:2571 +#: ../src/verbs.cpp:2591 msgid "Save template ..." msgstr "" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2592 msgid "Save a copy of the document as template" msgstr "" -#: ../src/verbs.cpp:2573 +#: ../src/verbs.cpp:2593 msgid "_Print..." msgstr "" -#: ../src/verbs.cpp:2573 +#: ../src/verbs.cpp:2593 msgid "Print document" msgstr "" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2576 +#: ../src/verbs.cpp:2596 msgid "Clean _up document" msgstr "" -#: ../src/verbs.cpp:2576 +#: ../src/verbs.cpp:2596 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" msgstr "" -#: ../src/verbs.cpp:2578 +#: ../src/verbs.cpp:2598 msgid "_Import..." msgstr "" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2599 msgid "Import a bitmap or SVG image into this document" msgstr "" #. new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON("document-export")), -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2601 msgid "Import Clip Art..." msgstr "" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2602 msgid "Import clipart from Open Clip Art Library" msgstr "" #. 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:2584 +#: ../src/verbs.cpp:2604 msgid "N_ext Window" msgstr "" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2605 msgid "Switch to the next document window" msgstr "" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2606 msgid "P_revious Window" msgstr "" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2607 msgid "Switch to the previous document window" msgstr "" -#: ../src/verbs.cpp:2589 +#: ../src/verbs.cpp:2609 msgid "Close this document window" msgstr "" -#: ../src/verbs.cpp:2590 +#: ../src/verbs.cpp:2610 msgid "_Quit" msgstr "" -#: ../src/verbs.cpp:2590 +#: ../src/verbs.cpp:2610 msgid "Quit Inkscape" msgstr "" -#: ../src/verbs.cpp:2591 +#: ../src/verbs.cpp:2611 msgid "New from _Template..." msgstr "" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2612 msgid "Create new project from template" msgstr "" -#: ../src/verbs.cpp:2595 +#: ../src/verbs.cpp:2615 msgid "Undo last action" msgstr "" -#: ../src/verbs.cpp:2598 +#: ../src/verbs.cpp:2618 msgid "Do again the last undone action" msgstr "" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2619 msgid "Cu_t" msgstr "" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2620 msgid "Cut selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2601 +#: ../src/verbs.cpp:2621 msgid "_Copy" msgstr "" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2622 msgid "Copy selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2623 msgid "_Paste" msgstr "" -#: ../src/verbs.cpp:2604 +#: ../src/verbs.cpp:2624 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "" -#: ../src/verbs.cpp:2605 +#: ../src/verbs.cpp:2625 msgid "Paste _Style" msgstr "" -#: ../src/verbs.cpp:2606 +#: ../src/verbs.cpp:2626 msgid "Apply the style of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2607 ../share/ui/menus.xml.h:3 +#: ../src/verbs.cpp:2627 ../share/ui/menus.xml.h:3 msgid "Paste Si_ze" msgstr "" -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2628 msgid "Scale selection to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2609 +#: ../src/verbs.cpp:2629 msgid "Paste _Width" msgstr "" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2630 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2631 msgid "Paste _Height" msgstr "" -#: ../src/verbs.cpp:2612 +#: ../src/verbs.cpp:2632 msgid "Scale selection vertically to match the height of the copied object" msgstr "" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2633 msgid "Paste Size Separately" msgstr "" -#: ../src/verbs.cpp:2614 +#: ../src/verbs.cpp:2634 msgid "Scale each selected object to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2615 +#: ../src/verbs.cpp:2635 msgid "Paste Width Separately" msgstr "" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2636 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2617 +#: ../src/verbs.cpp:2637 msgid "Paste Height Separately" msgstr "" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2638 msgid "" "Scale each selected object vertically to match the height of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2639 msgid "Paste _In Place" msgstr "" -#: ../src/verbs.cpp:2620 +#: ../src/verbs.cpp:2640 msgid "Paste objects from clipboard to the original location" msgstr "" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2641 msgid "Paste Path _Effect" msgstr "" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2642 msgid "Apply the path effect of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2643 msgid "Remove Path _Effect" msgstr "" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2644 msgid "Remove any path effects from selected objects" msgstr "" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2645 msgid "_Remove Filters" msgstr "" -#: ../src/verbs.cpp:2626 +#: ../src/verbs.cpp:2646 msgid "Remove any filters from selected objects" msgstr "" -#: ../src/verbs.cpp:2628 +#: ../src/verbs.cpp:2648 msgid "Delete selection" msgstr "" -#: ../src/verbs.cpp:2629 +#: ../src/verbs.cpp:2649 msgid "Duplic_ate" msgstr "" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2650 msgid "Duplicate selected objects" msgstr "" -#: ../src/verbs.cpp:2631 +#: ../src/verbs.cpp:2651 msgid "Create Clo_ne" msgstr "" -#: ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2652 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2653 msgid "Unlin_k Clone" msgstr "" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2654 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" msgstr "" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2655 msgid "Unlink Clones _recursively" msgstr "" -#: ../src/verbs.cpp:2636 +#: ../src/verbs.cpp:2656 msgid "Unlink all clones in the selection, even if they are in groups." msgstr "" -#: ../src/verbs.cpp:2637 +#: ../src/verbs.cpp:2657 msgid "Relink to Copied" msgstr "" -#: ../src/verbs.cpp:2638 +#: ../src/verbs.cpp:2658 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2659 msgid "Select _Original" msgstr "" -#: ../src/verbs.cpp:2640 +#: ../src/verbs.cpp:2660 msgid "Select the object to which the selected clone is linked" msgstr "" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2661 msgid "Clone original path (LPE)" msgstr "" -#: ../src/verbs.cpp:2642 +#: ../src/verbs.cpp:2662 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" msgstr "" -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2663 msgid "Objects to _Marker" msgstr "" -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2664 msgid "Convert selection to a line marker" msgstr "" -#: ../src/verbs.cpp:2645 +#: ../src/verbs.cpp:2665 msgid "Objects to Gu_ides" msgstr "" -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2666 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" msgstr "" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2667 msgid "Objects to Patter_n" msgstr "" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2668 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2669 msgid "Pattern to _Objects" msgstr "" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2670 msgid "Extract objects from a tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2671 msgid "Group to Symbol" msgstr "" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2672 msgid "Convert group to a symbol" msgstr "" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2673 msgid "Symbol to Group" msgstr "" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2674 msgid "Extract group from a symbol" msgstr "" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2675 msgid "Clea_r All" msgstr "" -#: ../src/verbs.cpp:2656 +#: ../src/verbs.cpp:2676 msgid "Delete all objects from document" msgstr "" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2677 msgid "Select Al_l" msgstr "" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2678 msgid "Select all objects or all nodes" msgstr "" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2679 msgid "Select All in All La_yers" msgstr "" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2680 msgid "Select all objects in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2681 msgid "Fill _and Stroke" msgstr "" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2682 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2683 msgid "_Fill Color" msgstr "" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2684 msgid "Select all objects with the same fill as the selected objects" msgstr "" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2685 msgid "_Stroke Color" msgstr "" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2686 msgid "Select all objects with the same stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2687 msgid "Stroke St_yle" msgstr "" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2688 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" msgstr "" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2689 msgid "_Object Type" msgstr "" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2690 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" msgstr "" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2691 msgid "In_vert Selection" msgstr "" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2692 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2693 msgid "Invert in All Layers" msgstr "" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2694 msgid "Invert selection in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2695 msgid "Select Next" msgstr "" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2696 msgid "Select next object or node" msgstr "" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2697 msgid "Select Previous" msgstr "" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2698 msgid "Select previous object or node" msgstr "" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2699 msgid "D_eselect" msgstr "" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2700 msgid "Deselect any selected objects or nodes" msgstr "" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2702 msgid "Delete all the guides in the document" msgstr "" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2703 msgid "Lock All Guides" msgstr "" -#: ../src/verbs.cpp:2683 ../src/widgets/desktop-widget.cpp:363 +#: ../src/verbs.cpp:2703 ../src/widgets/desktop-widget.cpp:363 msgid "Toggle lock of all guides in the document" msgstr "" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2704 msgid "Create _Guides Around the Page" msgstr "" -#: ../src/verbs.cpp:2685 +#: ../src/verbs.cpp:2705 msgid "Create four guides aligned with the page borders" msgstr "" -#: ../src/verbs.cpp:2686 +#: ../src/verbs.cpp:2706 msgid "Next path effect parameter" msgstr "" -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2707 msgid "Show next editable path effect parameter" msgstr "" #. Selection -#: ../src/verbs.cpp:2692 +#: ../src/verbs.cpp:2712 msgid "Raise to _Top" msgstr "" -#: ../src/verbs.cpp:2693 +#: ../src/verbs.cpp:2713 msgid "Raise selection to top" msgstr "" -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2714 msgid "Lower to _Bottom" msgstr "" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2715 msgid "Lower selection to bottom" msgstr "" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2716 msgid "_Raise" msgstr "" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2717 msgid "Raise selection one step" msgstr "" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2718 msgid "_Lower" msgstr "" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2719 msgid "Lower selection one step" msgstr "" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2722 msgid "_Stack up" msgstr "" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2723 msgid "Stack selection one step up" msgstr "" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2724 msgid "_Stack down" msgstr "" -#: ../src/verbs.cpp:2705 +#: ../src/verbs.cpp:2725 msgid "Stack selection one step down" msgstr "" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2729 msgid "Group selected objects" msgstr "" -#: ../src/verbs.cpp:2711 +#: ../src/verbs.cpp:2731 msgid "Ungroup selected groups" msgstr "" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2732 msgid "_Pop selected objects out of group" msgstr "" -#: ../src/verbs.cpp:2713 +#: ../src/verbs.cpp:2733 msgid "Pop selected objects out of group" msgstr "" -#: ../src/verbs.cpp:2715 +#: ../src/verbs.cpp:2735 msgid "_Put on Path" msgstr "" -#: ../src/verbs.cpp:2717 +#: ../src/verbs.cpp:2737 msgid "_Remove from Path" msgstr "" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2739 msgid "Remove Manual _Kerns" msgstr "" #. TRANSLATORS: "glyph": An image used in the visual representation of characters; #. roughly speaking, how a character looks. A font is a set of glyphs. -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2742 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2744 msgid "_Union" msgstr "" -#: ../src/verbs.cpp:2725 +#: ../src/verbs.cpp:2745 msgid "Create union of selected paths" msgstr "" -#: ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2746 msgid "_Intersection" msgstr "" -#: ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:2747 msgid "Create intersection of selected paths" msgstr "" -#: ../src/verbs.cpp:2728 +#: ../src/verbs.cpp:2748 msgid "_Difference" msgstr "" -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2749 msgid "Create difference of selected paths (bottom minus top)" msgstr "" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2750 msgid "E_xclusion" msgstr "" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2751 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" msgstr "" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2752 msgid "Di_vision" msgstr "" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2753 msgid "Cut the bottom path into pieces" msgstr "" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2756 msgid "Cut _Path" msgstr "" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2757 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2758 msgid "_Grow" msgstr "" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2759 msgid "Make selected objects bigger" msgstr "" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2760 msgid "_Grow on screen" msgstr "" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2761 msgid "Make selected objects bigger relative to screen" msgstr "" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2762 msgid "_Double size" msgstr "" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2763 msgid "Double the size of selected objects" msgstr "" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2764 msgid "_Shrink" msgstr "" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2765 msgid "Make selected objects smaller" msgstr "" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2766 msgid "_Shrink on screen" msgstr "" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2767 msgid "Make selected objects smaller relative to screen" msgstr "" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2768 msgid "_Halve size" msgstr "" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2769 msgid "Halve the size of selected objects" msgstr "" #. TRANSLATORS: "outset": expand a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2753 +#: ../src/verbs.cpp:2773 msgid "Outs_et" msgstr "" -#: ../src/verbs.cpp:2754 +#: ../src/verbs.cpp:2774 msgid "Outset selected paths" msgstr "" -#: ../src/verbs.cpp:2756 +#: ../src/verbs.cpp:2776 msgid "O_utset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2777 msgid "Outset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2779 msgid "O_utset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2780 msgid "Outset selected paths by 10 px" msgstr "" #. TRANSLATORS: "inset": contract a shape by offsetting the object's path, #. i.e. by displacing it perpendicular to the path in each point. #. See also the Advanced Tutorial for explanation. -#: ../src/verbs.cpp:2764 +#: ../src/verbs.cpp:2784 msgid "I_nset" msgstr "" -#: ../src/verbs.cpp:2765 +#: ../src/verbs.cpp:2785 msgid "Inset selected paths" msgstr "" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2787 msgid "I_nset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2768 +#: ../src/verbs.cpp:2788 msgid "Inset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2770 +#: ../src/verbs.cpp:2790 msgid "I_nset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2791 msgid "Inset selected paths by 10 px" msgstr "" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2793 msgid "D_ynamic Offset" msgstr "" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2793 msgid "Create a dynamic offset object" msgstr "" -#: ../src/verbs.cpp:2775 +#: ../src/verbs.cpp:2795 msgid "_Linked Offset" msgstr "" -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2796 msgid "Create a dynamic offset object linked to the original path" msgstr "" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2798 msgid "_Stroke to Path" msgstr "" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2799 msgid "Convert selected object's stroke to paths" msgstr "" -#: ../src/verbs.cpp:2780 +#: ../src/verbs.cpp:2800 msgid "_Stroke to Path Legacy" msgstr "" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2801 msgid "Convert selected object's stroke to paths legacy mode" msgstr "" -#: ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2802 msgid "Si_mplify" msgstr "" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2803 msgid "Simplify selected paths (remove extra nodes)" msgstr "" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2804 msgid "_Reverse" msgstr "" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2805 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2810 msgid "Create one or more paths from a bitmap by tracing it" msgstr "" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2813 msgid "Trace Pixel Art..." msgstr "" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2814 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2815 msgid "Make a _Bitmap Copy" msgstr "" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2816 msgid "Export selection to a bitmap and insert it into document" msgstr "" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2817 msgid "_Combine" msgstr "" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2818 msgid "Combine several paths into one" msgstr "" #. TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the #. Advanced tutorial for more info -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2821 msgid "Break _Apart" msgstr "" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2822 msgid "Break selected paths into subpaths" msgstr "" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2823 msgid "_Arrange..." msgstr "" -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2824 msgid "Arrange selected objects in a table or circle" msgstr "" #. Layer -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2826 msgid "_Add Layer..." msgstr "" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2827 msgid "Create a new layer" msgstr "" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2828 msgid "Re_name Layer..." msgstr "" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2829 msgid "Rename the current layer" msgstr "" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2830 msgid "Switch to Layer Abov_e" msgstr "" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2831 msgid "Switch to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2832 msgid "Switch to Layer Belo_w" msgstr "" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2833 msgid "Switch to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2834 msgid "Move Selection to Layer Abo_ve" msgstr "" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2835 msgid "Move selection to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2836 msgid "Move Selection to Layer Bel_ow" msgstr "" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2837 msgid "Move selection to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2838 msgid "Move Selection to Layer..." msgstr "" -#: ../src/verbs.cpp:2820 +#: ../src/verbs.cpp:2840 msgid "Layer to _Top" msgstr "" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2841 msgid "Raise the current layer to the top" msgstr "" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2842 msgid "Layer to _Bottom" msgstr "" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2843 msgid "Lower the current layer to the bottom" msgstr "" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2844 msgid "_Raise Layer" msgstr "" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2845 msgid "Raise the current layer" msgstr "" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2846 msgid "_Lower Layer" msgstr "" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2847 msgid "Lower the current layer" msgstr "" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2848 msgid "D_uplicate Current Layer" msgstr "" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2849 msgid "Duplicate an existing layer" msgstr "" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2850 msgid "_Delete Current Layer" msgstr "" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2851 msgid "Delete the current layer" msgstr "" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2852 msgid "_Show/hide other layers" msgstr "" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2853 msgid "Solo the current layer" msgstr "" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2854 msgid "_Show all layers" msgstr "" -#: ../src/verbs.cpp:2835 +#: ../src/verbs.cpp:2855 msgid "Show all the layers" msgstr "" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2856 msgid "_Hide all layers" msgstr "" -#: ../src/verbs.cpp:2837 +#: ../src/verbs.cpp:2857 msgid "Hide all the layers" msgstr "" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2858 msgid "_Lock all layers" msgstr "" -#: ../src/verbs.cpp:2839 +#: ../src/verbs.cpp:2859 msgid "Lock all the layers" msgstr "" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2860 msgid "Lock/Unlock _other layers" msgstr "" -#: ../src/verbs.cpp:2841 +#: ../src/verbs.cpp:2861 msgid "Lock all the other layers" msgstr "" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2862 msgid "_Unlock all layers" msgstr "" -#: ../src/verbs.cpp:2843 +#: ../src/verbs.cpp:2863 msgid "Unlock all the layers" msgstr "" -#: ../src/verbs.cpp:2844 +#: ../src/verbs.cpp:2864 msgid "_Lock/Unlock Current Layer" msgstr "" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2865 msgid "Toggle lock on current layer" msgstr "" -#: ../src/verbs.cpp:2846 +#: ../src/verbs.cpp:2866 msgid "_Show/hide Current Layer" msgstr "" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2867 msgid "Toggle visibility of current layer" msgstr "" #. Object -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2870 msgid "Rotate _90° CW" msgstr "" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2853 +#: ../src/verbs.cpp:2873 msgid "Rotate selection 90° clockwise" msgstr "" -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2874 msgid "Rotate 9_0° CCW" msgstr "" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2857 +#: ../src/verbs.cpp:2877 msgid "Rotate selection 90° counter-clockwise" msgstr "" -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2878 msgid "Remove _Transformations" msgstr "" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2879 msgid "Remove transformations from object" msgstr "" -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2880 msgid "_Object to Path" msgstr "" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2881 msgid "Convert selected object to path" msgstr "" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2882 msgid "_Flow into Frame" msgstr "" -#: ../src/verbs.cpp:2863 +#: ../src/verbs.cpp:2883 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" msgstr "" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2884 msgid "_Unflow" msgstr "" -#: ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2885 msgid "Remove text from frame (creates a single-line text object)" msgstr "" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2886 msgid "_Convert to Text" msgstr "" -#: ../src/verbs.cpp:2867 +#: ../src/verbs.cpp:2887 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2889 msgid "Flip _Horizontal" msgstr "" -#: ../src/verbs.cpp:2869 +#: ../src/verbs.cpp:2889 msgid "Flip selected objects horizontally" msgstr "" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2892 msgid "Flip _Vertical" msgstr "" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2892 msgid "Flip selected objects vertically" msgstr "" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2895 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" -#: ../src/verbs.cpp:2876 ../src/verbs.cpp:2884 ../share/ui/menus.xml.h:2 +#: ../src/verbs.cpp:2896 ../src/verbs.cpp:2904 +msgid "_Set Inverse (LPE)" +msgstr "" + +#: ../src/verbs.cpp:2897 +msgid "Apply inverse mask to selection (using the topmost object as mask)" +msgstr "" + +#: ../src/verbs.cpp:2898 ../src/verbs.cpp:2908 ../share/ui/menus.xml.h:2 msgid "_Edit" msgstr "" -#: ../src/verbs.cpp:2877 +#: ../src/verbs.cpp:2899 msgid "Edit mask" msgstr "" -#: ../src/verbs.cpp:2878 ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2900 ../src/verbs.cpp:2910 msgid "_Release" msgstr "" -#: ../src/verbs.cpp:2879 +#: ../src/verbs.cpp:2901 msgid "Remove mask from selection" msgstr "" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2903 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2905 +msgid "" +"Apply inverse clipping path to selection (using the topmost object as " +"clipping path)" +msgstr "" + +#: ../src/verbs.cpp:2906 msgid "Create Cl_ip Group" msgstr "" -#: ../src/verbs.cpp:2883 +#: ../src/verbs.cpp:2907 msgid "Creates a clip group using the selected objects as a base" msgstr "" -#: ../src/verbs.cpp:2885 +#: ../src/verbs.cpp:2909 msgid "Edit clipping path" msgstr "" -#: ../src/verbs.cpp:2887 +#: ../src/verbs.cpp:2911 msgid "Remove clipping path from selection" msgstr "" #. Tools -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2916 msgctxt "ContextVerb" msgid "Select" msgstr "" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2917 msgid "Select and transform objects" msgstr "" -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2918 msgctxt "ContextVerb" msgid "Node Edit" msgstr "" -#: ../src/verbs.cpp:2895 +#: ../src/verbs.cpp:2919 msgid "Edit paths by nodes" msgstr "" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2920 msgctxt "ContextVerb" msgid "Tweak" msgstr "" -#: ../src/verbs.cpp:2897 +#: ../src/verbs.cpp:2921 msgid "Tweak objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2898 +#: ../src/verbs.cpp:2922 msgctxt "ContextVerb" msgid "Spray" msgstr "" -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2923 msgid "Spray objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2900 +#: ../src/verbs.cpp:2924 msgctxt "ContextVerb" msgid "Rectangle" msgstr "" -#: ../src/verbs.cpp:2901 +#: ../src/verbs.cpp:2925 msgid "Create rectangles and squares" msgstr "" -#: ../src/verbs.cpp:2902 +#: ../src/verbs.cpp:2926 msgctxt "ContextVerb" msgid "3D Box" msgstr "" -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2927 msgid "Create 3D boxes" msgstr "" -#: ../src/verbs.cpp:2904 +#: ../src/verbs.cpp:2928 msgctxt "ContextVerb" msgid "Ellipse" msgstr "" -#: ../src/verbs.cpp:2905 +#: ../src/verbs.cpp:2929 msgid "Create circles, ellipses, and arcs" msgstr "" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2930 msgctxt "ContextVerb" msgid "Star" msgstr "" -#: ../src/verbs.cpp:2907 +#: ../src/verbs.cpp:2931 msgid "Create stars and polygons" msgstr "" -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:2932 msgctxt "ContextVerb" msgid "Spiral" msgstr "" -#: ../src/verbs.cpp:2909 +#: ../src/verbs.cpp:2933 msgid "Create spirals" msgstr "" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2934 msgctxt "ContextVerb" msgid "Pencil" msgstr "" -#: ../src/verbs.cpp:2911 +#: ../src/verbs.cpp:2935 msgid "Draw freehand lines" msgstr "" -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2936 msgctxt "ContextVerb" msgid "Pen" msgstr "" -#: ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2937 msgid "Draw Bezier curves and straight lines" msgstr "" -#: ../src/verbs.cpp:2914 +#: ../src/verbs.cpp:2938 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2939 msgid "Draw calligraphic or brush strokes" msgstr "" -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2941 msgid "Create and edit text objects" msgstr "" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2942 msgctxt "ContextVerb" msgid "Gradient" msgstr "" -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2943 msgid "Create and edit gradients" msgstr "" -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2944 msgctxt "ContextVerb" msgid "Mesh" msgstr "" -#: ../src/verbs.cpp:2921 +#: ../src/verbs.cpp:2945 msgid "Create and edit meshes" msgstr "" -#: ../src/verbs.cpp:2922 +#: ../src/verbs.cpp:2946 msgctxt "ContextVerb" msgid "Zoom" msgstr "" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2947 msgid "Zoom in or out" msgstr "" -#: ../src/verbs.cpp:2925 +#: ../src/verbs.cpp:2949 msgid "Measurement tool" msgstr "" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2950 msgctxt "ContextVerb" msgid "Dropper" msgstr "" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2952 msgctxt "ContextVerb" msgid "Connector" msgstr "" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2953 msgid "Create diagram connectors" msgstr "" -#: ../src/verbs.cpp:2932 +#: ../src/verbs.cpp:2956 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2957 msgid "Fill bounded areas" msgstr "" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2960 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "" -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2961 msgid "Edit Path Effect parameters" msgstr "" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2962 msgctxt "ContextVerb" msgid "Eraser" msgstr "" -#: ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2963 msgid "Erase existing paths" msgstr "" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2964 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "" -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2965 msgid "Do geometric constructions" msgstr "" #. Tool prefs -#: ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2967 msgid "Selector Preferences" msgstr "" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2968 msgid "Open Preferences for the Selector tool" msgstr "" -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2969 msgid "Node Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2970 msgid "Open Preferences for the Node tool" msgstr "" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2971 msgid "Tweak Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2972 msgid "Open Preferences for the Tweak tool" msgstr "" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2973 msgid "Spray Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2974 msgid "Open Preferences for the Spray tool" msgstr "" -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2975 msgid "Rectangle Preferences" msgstr "" -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2976 msgid "Open Preferences for the Rectangle tool" msgstr "" -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2977 msgid "3D Box Preferences" msgstr "" -#: ../src/verbs.cpp:2954 +#: ../src/verbs.cpp:2978 msgid "Open Preferences for the 3D Box tool" msgstr "" -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2979 msgid "Ellipse Preferences" msgstr "" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2980 msgid "Open Preferences for the Ellipse tool" msgstr "" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2981 msgid "Star Preferences" msgstr "" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2982 msgid "Open Preferences for the Star tool" msgstr "" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2983 msgid "Spiral Preferences" msgstr "" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2984 msgid "Open Preferences for the Spiral tool" msgstr "" -#: ../src/verbs.cpp:2961 +#: ../src/verbs.cpp:2985 msgid "Pencil Preferences" msgstr "" -#: ../src/verbs.cpp:2962 +#: ../src/verbs.cpp:2986 msgid "Open Preferences for the Pencil tool" msgstr "" -#: ../src/verbs.cpp:2963 +#: ../src/verbs.cpp:2987 msgid "Pen Preferences" msgstr "" -#: ../src/verbs.cpp:2964 +#: ../src/verbs.cpp:2988 msgid "Open Preferences for the Pen tool" msgstr "" -#: ../src/verbs.cpp:2965 +#: ../src/verbs.cpp:2989 msgid "Calligraphic Preferences" msgstr "" -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2990 msgid "Open Preferences for the Calligraphy tool" msgstr "" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2991 msgid "Text Preferences" msgstr "" -#: ../src/verbs.cpp:2968 +#: ../src/verbs.cpp:2992 msgid "Open Preferences for the Text tool" msgstr "" -#: ../src/verbs.cpp:2969 +#: ../src/verbs.cpp:2993 msgid "Gradient Preferences" msgstr "" -#: ../src/verbs.cpp:2970 +#: ../src/verbs.cpp:2994 msgid "Open Preferences for the Gradient tool" msgstr "" -#: ../src/verbs.cpp:2971 +#: ../src/verbs.cpp:2995 msgid "Mesh Preferences" msgstr "" -#: ../src/verbs.cpp:2972 +#: ../src/verbs.cpp:2996 msgid "Open Preferences for the Mesh tool" msgstr "" -#: ../src/verbs.cpp:2973 +#: ../src/verbs.cpp:2997 msgid "Zoom Preferences" msgstr "" -#: ../src/verbs.cpp:2974 +#: ../src/verbs.cpp:2998 msgid "Open Preferences for the Zoom tool" msgstr "" -#: ../src/verbs.cpp:2975 +#: ../src/verbs.cpp:2999 msgid "Measure Preferences" msgstr "" -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:3000 msgid "Open Preferences for the Measure tool" msgstr "" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:3001 msgid "Dropper Preferences" msgstr "" -#: ../src/verbs.cpp:2978 +#: ../src/verbs.cpp:3002 msgid "Open Preferences for the Dropper tool" msgstr "" -#: ../src/verbs.cpp:2979 +#: ../src/verbs.cpp:3003 msgid "Connector Preferences" msgstr "" -#: ../src/verbs.cpp:2980 +#: ../src/verbs.cpp:3004 msgid "Open Preferences for the Connector tool" msgstr "" -#: ../src/verbs.cpp:2983 +#: ../src/verbs.cpp:3007 msgid "Paint Bucket Preferences" msgstr "" -#: ../src/verbs.cpp:2984 +#: ../src/verbs.cpp:3008 msgid "Open Preferences for the Paint Bucket tool" msgstr "" -#: ../src/verbs.cpp:2987 +#: ../src/verbs.cpp:3011 msgid "Eraser Preferences" msgstr "" -#: ../src/verbs.cpp:2988 +#: ../src/verbs.cpp:3012 msgid "Open Preferences for the Eraser tool" msgstr "" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:3013 msgid "LPE Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2990 +#: ../src/verbs.cpp:3014 msgid "Open Preferences for the LPETool tool" msgstr "" #. Zoom -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:3017 msgid "Zoom In" msgstr "" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:3017 msgid "Zoom in" msgstr "" -#: ../src/verbs.cpp:2994 +#: ../src/verbs.cpp:3018 msgid "Zoom Out" msgstr "" -#: ../src/verbs.cpp:2994 +#: ../src/verbs.cpp:3018 msgid "Zoom out" msgstr "" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:3019 msgid "Nex_t Zoom" msgstr "" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:3019 msgid "Next zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:3021 msgid "Pre_vious Zoom" msgstr "" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:3021 msgid "Previous zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:3023 msgid "Zoom 1:_1" msgstr "" -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:3023 msgid "Zoom to 1:1" msgstr "" -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:3025 msgid "Zoom 1:_2" msgstr "" -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:3025 msgid "Zoom to 1:2" msgstr "" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:3027 msgid "_Zoom 2:1" msgstr "" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:3027 msgid "Zoom to 2:1" msgstr "" -#: ../src/verbs.cpp:3006 +#: ../src/verbs.cpp:3030 msgid "Zoom to fit page in window" msgstr "" -#: ../src/verbs.cpp:3007 +#: ../src/verbs.cpp:3031 msgid "Page _Width" msgstr "" -#: ../src/verbs.cpp:3008 +#: ../src/verbs.cpp:3032 msgid "Zoom to fit page width in window" msgstr "" -#: ../src/verbs.cpp:3010 +#: ../src/verbs.cpp:3034 msgid "Zoom to fit drawing in window" msgstr "" -#: ../src/verbs.cpp:3012 +#: ../src/verbs.cpp:3036 msgid "Zoom to fit selection in window" msgstr "" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:3038 msgid "Rotate Clockwise" msgstr "" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:3038 msgid "Rotate canvas clockwise" msgstr "" -#: ../src/verbs.cpp:3015 +#: ../src/verbs.cpp:3039 msgid "Rotate Counter-Clockwise" msgstr "" -#: ../src/verbs.cpp:3015 +#: ../src/verbs.cpp:3039 msgid "Rotate canvas counter-clockwise" msgstr "" -#: ../src/verbs.cpp:3016 -msgid "Rotate Zero" +#: ../src/verbs.cpp:3040 +msgid "Reset Rotation" msgstr "" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:3040 msgid "Reset canvas rotation to zero" msgstr "" -#: ../src/verbs.cpp:3018 -msgid "Flip Horizontal" +#: ../src/verbs.cpp:3042 +msgid "Flip Horizontally" msgstr "" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:3042 msgid "Flip canvas horizontally" msgstr "" -#: ../src/verbs.cpp:3019 -msgid "Flip Vertical" +#: ../src/verbs.cpp:3043 +msgid "Flip Vertically" msgstr "" -#: ../src/verbs.cpp:3019 +#: ../src/verbs.cpp:3043 msgid "Flip canvas vertically" msgstr "" -#: ../src/verbs.cpp:3020 -msgid "Flip None" +#: ../src/verbs.cpp:3044 +msgid "Reset Flip" msgstr "" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:3044 msgid "Undo any flip" msgstr "" #. WHY ARE THE FOLLOWING ZoomVerbs??? #. View -#: ../src/verbs.cpp:3026 +#: ../src/verbs.cpp:3050 msgid "_Rulers" msgstr "" -#: ../src/verbs.cpp:3026 +#: ../src/verbs.cpp:3050 msgid "Show or hide the canvas rulers" msgstr "" -#: ../src/verbs.cpp:3027 +#: ../src/verbs.cpp:3051 msgid "Scroll_bars" msgstr "" -#: ../src/verbs.cpp:3027 +#: ../src/verbs.cpp:3051 msgid "Show or hide the canvas scrollbars" msgstr "" -#: ../src/verbs.cpp:3028 +#: ../src/verbs.cpp:3052 msgid "Page _Grid" msgstr "" -#: ../src/verbs.cpp:3028 +#: ../src/verbs.cpp:3052 msgid "Show or hide the page grid" msgstr "" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3053 msgid "G_uides" msgstr "" -#: ../src/verbs.cpp:3029 +#: ../src/verbs.cpp:3053 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" -#: ../src/verbs.cpp:3030 +#: ../src/verbs.cpp:3054 msgid "Enable snapping" msgstr "" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3055 msgid "_Commands Bar" msgstr "" -#: ../src/verbs.cpp:3031 +#: ../src/verbs.cpp:3055 msgid "Show or hide the Commands bar (under the menu)" msgstr "" -#: ../src/verbs.cpp:3032 +#: ../src/verbs.cpp:3056 msgid "Sn_ap Controls Bar" msgstr "" -#: ../src/verbs.cpp:3032 +#: ../src/verbs.cpp:3056 msgid "Show or hide the snapping controls" msgstr "" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3057 msgid "T_ool Controls Bar" msgstr "" -#: ../src/verbs.cpp:3033 +#: ../src/verbs.cpp:3057 msgid "Show or hide the Tool Controls bar" msgstr "" -#: ../src/verbs.cpp:3034 +#: ../src/verbs.cpp:3058 msgid "_Toolbox" msgstr "" -#: ../src/verbs.cpp:3034 +#: ../src/verbs.cpp:3058 msgid "Show or hide the main toolbox (on the left)" msgstr "" -#: ../src/verbs.cpp:3035 +#: ../src/verbs.cpp:3059 msgid "_Palette" msgstr "" -#: ../src/verbs.cpp:3035 +#: ../src/verbs.cpp:3059 msgid "Show or hide the color palette" msgstr "" -#: ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3060 msgid "_Statusbar" msgstr "" -#: ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3060 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "" -#: ../src/verbs.cpp:3038 +#: ../src/verbs.cpp:3062 msgid "_Fullscreen" msgstr "" -#: ../src/verbs.cpp:3038 ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3062 ../src/verbs.cpp:3064 msgid "Stretch this document window to full screen" msgstr "" -#: ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3064 msgid "Fullscreen & Focus Mode" msgstr "" -#: ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3066 msgid "Toggle _Focus Mode" msgstr "" -#: ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3066 msgid "Remove excess toolbars to focus on drawing" msgstr "" -#: ../src/verbs.cpp:3044 +#: ../src/verbs.cpp:3068 msgid "Duplic_ate Window" msgstr "" -#: ../src/verbs.cpp:3044 +#: ../src/verbs.cpp:3068 msgid "Open a new window with the same document" msgstr "" -#: ../src/verbs.cpp:3046 +#: ../src/verbs.cpp:3070 msgid "_New View Preview" msgstr "" -#: ../src/verbs.cpp:3047 +#: ../src/verbs.cpp:3071 msgid "New View Preview" msgstr "" #. "view_new_preview" -#: ../src/verbs.cpp:3049 ../src/verbs.cpp:3057 +#: ../src/verbs.cpp:3073 ../src/verbs.cpp:3081 msgid "_Normal" msgstr "" -#: ../src/verbs.cpp:3050 +#: ../src/verbs.cpp:3074 msgid "Switch to normal display mode" msgstr "" -#: ../src/verbs.cpp:3051 +#: ../src/verbs.cpp:3075 msgid "No _Filters" msgstr "" -#: ../src/verbs.cpp:3052 +#: ../src/verbs.cpp:3076 msgid "Switch to normal display without filters" msgstr "" -#: ../src/verbs.cpp:3053 +#: ../src/verbs.cpp:3077 msgid "_Outline" msgstr "" -#: ../src/verbs.cpp:3054 +#: ../src/verbs.cpp:3078 msgid "Switch to outline (wireframe) display mode" msgstr "" #. new ZoomVerb(SP_VERB_VIEW_COLOR_MODE_PRINT_COLORS_PREVIEW, "ViewColorModePrintColorsPreview", N_("_Print Colors Preview"), #. N_("Switch to print colors preview mode"), NULL), -#: ../src/verbs.cpp:3055 ../src/verbs.cpp:3063 +#: ../src/verbs.cpp:3079 ../src/verbs.cpp:3087 msgid "_Toggle" msgstr "" -#: ../src/verbs.cpp:3056 +#: ../src/verbs.cpp:3080 msgid "Toggle between normal and outline display modes" msgstr "" -#: ../src/verbs.cpp:3058 +#: ../src/verbs.cpp:3082 msgid "Switch to normal color display mode" msgstr "" -#: ../src/verbs.cpp:3059 +#: ../src/verbs.cpp:3083 msgid "_Grayscale" msgstr "" -#: ../src/verbs.cpp:3060 +#: ../src/verbs.cpp:3084 msgid "Switch to grayscale display mode" msgstr "" -#: ../src/verbs.cpp:3064 +#: ../src/verbs.cpp:3088 msgid "Toggle between normal and grayscale color display modes" msgstr "" -#: ../src/verbs.cpp:3066 +#: ../src/verbs.cpp:3090 msgid "Color-managed view" msgstr "" -#: ../src/verbs.cpp:3067 +#: ../src/verbs.cpp:3091 msgid "Toggle color-managed display for this document window" msgstr "" -#: ../src/verbs.cpp:3069 +#: ../src/verbs.cpp:3093 msgid "Ico_n Preview..." msgstr "" -#: ../src/verbs.cpp:3070 +#: ../src/verbs.cpp:3094 msgid "Open a window to preview objects at different icon resolutions" msgstr "" #. Dialogs -#: ../src/verbs.cpp:3073 +#: ../src/verbs.cpp:3097 msgid "Prototype..." msgstr "" -#: ../src/verbs.cpp:3074 +#: ../src/verbs.cpp:3098 msgid "Prototype Dialog" msgstr "" -#: ../src/verbs.cpp:3075 +#: ../src/verbs.cpp:3099 msgid "P_references..." msgstr "" -#: ../src/verbs.cpp:3076 +#: ../src/verbs.cpp:3100 msgid "Edit global Inkscape preferences" msgstr "" -#: ../src/verbs.cpp:3077 +#: ../src/verbs.cpp:3101 msgid "_Document Properties..." msgstr "" -#: ../src/verbs.cpp:3078 +#: ../src/verbs.cpp:3102 msgid "Edit properties of this document (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:3079 +#: ../src/verbs.cpp:3103 msgid "Document _Metadata..." msgstr "" -#: ../src/verbs.cpp:3080 +#: ../src/verbs.cpp:3104 msgid "Edit document metadata (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:3082 +#: ../src/verbs.cpp:3106 msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." msgstr "" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:3084 +#: ../src/verbs.cpp:3108 msgid "Gl_yphs..." msgstr "" -#: ../src/verbs.cpp:3085 +#: ../src/verbs.cpp:3109 msgid "Select characters from a glyphs palette" msgstr "" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-color" icon #. TRANSLATORS: "Swatches" means: color samples -#: ../src/verbs.cpp:3088 +#: ../src/verbs.cpp:3112 msgid "S_watches..." msgstr "" -#: ../src/verbs.cpp:3089 +#: ../src/verbs.cpp:3113 msgid "Select colors from a swatches palette" msgstr "" -#: ../src/verbs.cpp:3090 +#: ../src/verbs.cpp:3114 msgid "S_ymbols..." msgstr "" -#: ../src/verbs.cpp:3091 +#: ../src/verbs.cpp:3115 msgid "Select symbol from a symbols palette" msgstr "" -#: ../src/verbs.cpp:3092 +#: ../src/verbs.cpp:3116 msgid "Transfor_m..." msgstr "" -#: ../src/verbs.cpp:3093 +#: ../src/verbs.cpp:3117 msgid "Precisely control objects' transformations" msgstr "" -#: ../src/verbs.cpp:3094 +#: ../src/verbs.cpp:3118 msgid "_Align and Distribute..." msgstr "" -#: ../src/verbs.cpp:3095 +#: ../src/verbs.cpp:3119 msgid "Align and distribute objects" msgstr "" -#: ../src/verbs.cpp:3096 +#: ../src/verbs.cpp:3120 msgid "_Spray options..." msgstr "" -#: ../src/verbs.cpp:3097 +#: ../src/verbs.cpp:3121 msgid "Some options for the spray" msgstr "" -#: ../src/verbs.cpp:3098 +#: ../src/verbs.cpp:3122 msgid "Undo _History..." msgstr "" -#: ../src/verbs.cpp:3099 +#: ../src/verbs.cpp:3123 msgid "Undo History" msgstr "" -#: ../src/verbs.cpp:3101 +#: ../src/verbs.cpp:3125 msgid "View and select font family, font size and other text properties" msgstr "" -#: ../src/verbs.cpp:3102 +#: ../src/verbs.cpp:3126 msgid "_XML Editor..." msgstr "" -#: ../src/verbs.cpp:3103 +#: ../src/verbs.cpp:3127 msgid "View and edit the XML tree of the document" msgstr "" -#: ../src/verbs.cpp:3104 +#: ../src/verbs.cpp:3128 msgid "_Find/Replace..." msgstr "" -#: ../src/verbs.cpp:3105 +#: ../src/verbs.cpp:3129 msgid "Find objects in document" msgstr "" -#: ../src/verbs.cpp:3106 +#: ../src/verbs.cpp:3130 msgid "Find and _Replace Text..." msgstr "" -#: ../src/verbs.cpp:3107 +#: ../src/verbs.cpp:3131 msgid "Find and replace text in document" msgstr "" -#: ../src/verbs.cpp:3109 +#: ../src/verbs.cpp:3133 msgid "Check spelling of text in document" msgstr "" -#: ../src/verbs.cpp:3110 +#: ../src/verbs.cpp:3134 msgid "_Messages..." msgstr "" -#: ../src/verbs.cpp:3111 +#: ../src/verbs.cpp:3135 msgid "View debug messages" msgstr "" -#: ../src/verbs.cpp:3112 +#: ../src/verbs.cpp:3136 msgid "Show/Hide D_ialogs" msgstr "" -#: ../src/verbs.cpp:3113 +#: ../src/verbs.cpp:3137 msgid "Show or hide all open dialogs" msgstr "" -#: ../src/verbs.cpp:3114 +#: ../src/verbs.cpp:3138 msgid "Create Tiled Clones..." msgstr "" -#: ../src/verbs.cpp:3115 +#: ../src/verbs.cpp:3139 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" msgstr "" -#: ../src/verbs.cpp:3116 +#: ../src/verbs.cpp:3140 msgid "_Object attributes..." msgstr "" -#: ../src/verbs.cpp:3117 +#: ../src/verbs.cpp:3141 msgid "Edit the object attributes..." msgstr "" -#: ../src/verbs.cpp:3119 +#: ../src/verbs.cpp:3143 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" -#: ../src/verbs.cpp:3120 +#: ../src/verbs.cpp:3144 msgid "_Input Devices..." msgstr "" -#: ../src/verbs.cpp:3121 +#: ../src/verbs.cpp:3145 msgid "Configure extended input devices, such as a graphics tablet" msgstr "" -#: ../src/verbs.cpp:3122 +#: ../src/verbs.cpp:3146 msgid "_Extensions..." msgstr "" -#: ../src/verbs.cpp:3123 +#: ../src/verbs.cpp:3147 msgid "Query information about extensions" msgstr "" -#: ../src/verbs.cpp:3124 +#: ../src/verbs.cpp:3148 msgid "Layer_s..." msgstr "" -#: ../src/verbs.cpp:3125 +#: ../src/verbs.cpp:3149 msgid "View Layers" msgstr "" -#: ../src/verbs.cpp:3126 +#: ../src/verbs.cpp:3150 msgid "Object_s..." msgstr "" -#: ../src/verbs.cpp:3127 +#: ../src/verbs.cpp:3151 msgid "View Objects" msgstr "" -#: ../src/verbs.cpp:3128 +#: ../src/verbs.cpp:3152 msgid "Selection se_ts..." msgstr "" -#: ../src/verbs.cpp:3129 +#: ../src/verbs.cpp:3153 msgid "View Tags" msgstr "" -#: ../src/verbs.cpp:3130 +#: ../src/verbs.cpp:3154 msgid "Style Dialog..." msgstr "" -#: ../src/verbs.cpp:3131 +#: ../src/verbs.cpp:3155 msgid "View Style Dialog" msgstr "" -#: ../src/verbs.cpp:3132 +#: ../src/verbs.cpp:3156 msgid "Css Dialog..." msgstr "" -#: ../src/verbs.cpp:3133 +#: ../src/verbs.cpp:3157 msgid "View Css Dialog" msgstr "" -#: ../src/verbs.cpp:3134 +#: ../src/verbs.cpp:3158 msgid "Path E_ffects ..." msgstr "" -#: ../src/verbs.cpp:3135 +#: ../src/verbs.cpp:3159 msgid "Manage, edit, and apply path effects" msgstr "" -#: ../src/verbs.cpp:3136 +#: ../src/verbs.cpp:3160 msgid "Filter _Editor..." msgstr "" -#: ../src/verbs.cpp:3137 +#: ../src/verbs.cpp:3161 msgid "Manage, edit, and apply SVG filters" msgstr "" -#: ../src/verbs.cpp:3138 +#: ../src/verbs.cpp:3162 msgid "SVG Font Editor..." msgstr "" -#: ../src/verbs.cpp:3139 +#: ../src/verbs.cpp:3163 msgid "Edit SVG fonts" msgstr "" -#: ../src/verbs.cpp:3140 +#: ../src/verbs.cpp:3164 msgid "Print Colors..." msgstr "" -#: ../src/verbs.cpp:3141 +#: ../src/verbs.cpp:3165 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" -#: ../src/verbs.cpp:3142 +#: ../src/verbs.cpp:3166 msgid "_Export PNG Image..." msgstr "" -#: ../src/verbs.cpp:3143 +#: ../src/verbs.cpp:3167 msgid "Export this document or a selection as a PNG image" msgstr "" #. Help -#: ../src/verbs.cpp:3145 +#: ../src/verbs.cpp:3169 msgid "About E_xtensions" msgstr "" -#: ../src/verbs.cpp:3146 +#: ../src/verbs.cpp:3170 msgid "Information on Inkscape extensions" msgstr "" -#: ../src/verbs.cpp:3147 +#: ../src/verbs.cpp:3171 msgid "About _Memory" msgstr "" -#: ../src/verbs.cpp:3148 +#: ../src/verbs.cpp:3172 msgid "Memory usage information" msgstr "" -#: ../src/verbs.cpp:3149 +#: ../src/verbs.cpp:3173 msgid "_About Inkscape" msgstr "" -#: ../src/verbs.cpp:3150 +#: ../src/verbs.cpp:3174 msgid "Inkscape version, authors, license" msgstr "" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:3155 +#: ../src/verbs.cpp:3179 msgid "Inkscape: _Basic" msgstr "" -#: ../src/verbs.cpp:3156 +#: ../src/verbs.cpp:3180 msgid "Getting started with Inkscape" msgstr "" #. "tutorial_basic" -#: ../src/verbs.cpp:3157 +#: ../src/verbs.cpp:3181 msgid "Inkscape: _Shapes" msgstr "" -#: ../src/verbs.cpp:3158 +#: ../src/verbs.cpp:3182 msgid "Using shape tools to create and edit shapes" msgstr "" -#: ../src/verbs.cpp:3159 +#: ../src/verbs.cpp:3183 msgid "Inkscape: _Advanced" msgstr "" -#: ../src/verbs.cpp:3160 +#: ../src/verbs.cpp:3184 msgid "Advanced Inkscape topics" msgstr "" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:3164 +#: ../src/verbs.cpp:3188 msgid "Inkscape: T_racing" msgstr "" -#: ../src/verbs.cpp:3165 +#: ../src/verbs.cpp:3189 msgid "Using bitmap tracing" msgstr "" -#: ../src/verbs.cpp:3168 +#: ../src/verbs.cpp:3192 msgid "Inkscape: Tracing Pixel Art" msgstr "" -#: ../src/verbs.cpp:3169 +#: ../src/verbs.cpp:3193 msgid "Using Trace Pixel Art dialog" msgstr "" -#: ../src/verbs.cpp:3170 +#: ../src/verbs.cpp:3194 msgid "Inkscape: _Calligraphy" msgstr "" -#: ../src/verbs.cpp:3171 +#: ../src/verbs.cpp:3195 msgid "Using the Calligraphy pen tool" msgstr "" -#: ../src/verbs.cpp:3172 +#: ../src/verbs.cpp:3196 msgid "Inkscape: _Interpolate" msgstr "" -#: ../src/verbs.cpp:3173 +#: ../src/verbs.cpp:3197 msgid "Using the interpolate extension" msgstr "" #. "tutorial_interpolate" -#: ../src/verbs.cpp:3174 +#: ../src/verbs.cpp:3198 msgid "_Elements of Design" msgstr "" -#: ../src/verbs.cpp:3175 +#: ../src/verbs.cpp:3199 msgid "Principles of design in the tutorial form" msgstr "" #. "tutorial_design" -#: ../src/verbs.cpp:3176 +#: ../src/verbs.cpp:3200 msgid "_Tips and Tricks" msgstr "" -#: ../src/verbs.cpp:3177 +#: ../src/verbs.cpp:3201 msgid "Miscellaneous tips and tricks" msgstr "" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:3180 +#: ../src/verbs.cpp:3204 msgid "Previous Exte_nsion" msgstr "" -#: ../src/verbs.cpp:3181 +#: ../src/verbs.cpp:3205 msgid "Repeat the last extension with the same settings" msgstr "" -#: ../src/verbs.cpp:3182 +#: ../src/verbs.cpp:3206 msgid "_Previous Extension Settings..." msgstr "" -#: ../src/verbs.cpp:3183 +#: ../src/verbs.cpp:3207 msgid "Repeat the last extension with new settings" msgstr "" -#: ../src/verbs.cpp:3187 +#: ../src/verbs.cpp:3211 msgid "Fit the page to the current selection" msgstr "" -#: ../src/verbs.cpp:3189 +#: ../src/verbs.cpp:3213 msgid "Fit the page to the drawing" msgstr "" -#: ../src/verbs.cpp:3190 +#: ../src/verbs.cpp:3214 msgid "_Resize Page to Selection" msgstr "" -#: ../src/verbs.cpp:3191 +#: ../src/verbs.cpp:3215 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" -#: ../src/verbs.cpp:3195 +#: ../src/verbs.cpp:3219 msgid "Unlock All in All Layers" msgstr "" -#: ../src/verbs.cpp:3197 +#: ../src/verbs.cpp:3221 msgid "Unhide All" msgstr "" -#: ../src/verbs.cpp:3199 +#: ../src/verbs.cpp:3223 msgid "Unhide All in All Layers" msgstr "" -#: ../src/verbs.cpp:3203 +#: ../src/verbs.cpp:3227 msgid "Link an ICC color profile" msgstr "" -#: ../src/verbs.cpp:3204 +#: ../src/verbs.cpp:3228 msgid "Remove Color Profile" msgstr "" -#: ../src/verbs.cpp:3205 +#: ../src/verbs.cpp:3229 msgid "Remove a linked ICC color profile" msgstr "" -#: ../src/verbs.cpp:3208 +#: ../src/verbs.cpp:3232 msgid "Add External Script" msgstr "" -#: ../src/verbs.cpp:3208 +#: ../src/verbs.cpp:3232 msgid "Add an external script" msgstr "" -#: ../src/verbs.cpp:3210 +#: ../src/verbs.cpp:3234 msgid "Add Embedded Script" msgstr "" -#: ../src/verbs.cpp:3210 +#: ../src/verbs.cpp:3234 msgid "Add an embedded script" msgstr "" -#: ../src/verbs.cpp:3212 +#: ../src/verbs.cpp:3236 msgid "Edit Embedded Script" msgstr "" -#: ../src/verbs.cpp:3212 +#: ../src/verbs.cpp:3236 msgid "Edit an embedded script" msgstr "" -#: ../src/verbs.cpp:3214 +#: ../src/verbs.cpp:3238 msgid "Remove External Script" msgstr "" -#: ../src/verbs.cpp:3214 +#: ../src/verbs.cpp:3238 msgid "Remove an external script" msgstr "" -#: ../src/verbs.cpp:3216 +#: ../src/verbs.cpp:3240 msgid "Remove Embedded Script" msgstr "" -#: ../src/verbs.cpp:3216 +#: ../src/verbs.cpp:3240 msgid "Remove an embedded script" msgstr "" -#: ../src/verbs.cpp:3238 ../src/verbs.cpp:3239 +#: ../src/verbs.cpp:3262 ../src/verbs.cpp:3263 msgid "Center on horizontal and vertical axis" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:128 +#: ../src/widgets/arc-toolbar.cpp:140 +msgid "Change arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:206 msgid "Arc: Change start/end" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:198 +#: ../src/widgets/arc-toolbar.cpp:276 msgid "Arc: Changed arc type" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:295 ../src/widgets/arc-toolbar.cpp:325 +#: ../src/widgets/arc-toolbar.cpp:398 ../src/widgets/arc-toolbar.cpp:437 #: ../src/widgets/rect-toolbar.cpp:256 ../src/widgets/rect-toolbar.cpp:295 #: ../src/widgets/spiral-toolbar.cpp:207 ../src/widgets/spiral-toolbar.cpp:231 #: ../src/widgets/star-toolbar.cpp:380 ../src/widgets/star-toolbar.cpp:442 @@ -27978,50 +28301,83 @@ msgstr "" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); -#: ../src/widgets/arc-toolbar.cpp:298 ../src/widgets/arc-toolbar.cpp:309 +#: ../src/widgets/arc-toolbar.cpp:401 ../src/widgets/arc-toolbar.cpp:418 #: ../src/widgets/rect-toolbar.cpp:264 ../src/widgets/rect-toolbar.cpp:282 #: ../src/widgets/spiral-toolbar.cpp:209 ../src/widgets/spiral-toolbar.cpp:220 #: ../src/widgets/star-toolbar.cpp:382 msgid "Change:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:334 +#: ../src/widgets/arc-toolbar.cpp:448 ../src/widgets/rect-toolbar.cpp:347 +msgid "Horizontal radius" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:448 ../src/widgets/rect-toolbar.cpp:347 +msgid "Rx:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:448 +msgid "Horizontal radius of the circle, ellipse, or arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:465 ../src/widgets/rect-toolbar.cpp:362 +msgid "Vertical radius" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:465 ../src/widgets/rect-toolbar.cpp:362 +msgid "Ry:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:465 +msgid "Vertical radius of the circle, ellipse, or arc" +msgstr "" + +#. Add the units menu. +#: ../src/widgets/arc-toolbar.cpp:479 ../src/widgets/lpe-toolbar.cpp:380 +#: ../src/widgets/node-toolbar.cpp:611 +#: ../src/widgets/paintbucket-toolbar.cpp:166 +#: ../src/widgets/rect-toolbar.cpp:374 ../src/widgets/select-toolbar.cpp:520 +#: ../src/widgets/text-toolbar.cpp:2322 +msgid "Units" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:486 msgid "Start:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:335 +#: ../src/widgets/arc-toolbar.cpp:487 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:347 +#: ../src/widgets/arc-toolbar.cpp:499 msgid "End:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:348 +#: ../src/widgets/arc-toolbar.cpp:500 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:365 +#: ../src/widgets/arc-toolbar.cpp:517 msgid "Switch to slice (closed shape with two radii)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:371 +#: ../src/widgets/arc-toolbar.cpp:523 msgid "Arc (Open)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:372 +#: ../src/widgets/arc-toolbar.cpp:524 msgid "Switch to arc (unclosed shape)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:379 +#: ../src/widgets/arc-toolbar.cpp:531 msgid "Switch to chord (closed shape)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:402 +#: ../src/widgets/arc-toolbar.cpp:554 msgid "Make whole" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:403 +#: ../src/widgets/arc-toolbar.cpp:555 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "" @@ -28106,7 +28462,7 @@ msgstr "" #. Scale #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:374 +#: ../src/widgets/eraser-toolbar.cpp:184 ../src/widgets/pencil-toolbar.cpp:527 #: ../src/widgets/spray-toolbar.cpp:294 ../src/widgets/spray-toolbar.cpp:323 #: ../src/widgets/spray-toolbar.cpp:339 ../src/widgets/spray-toolbar.cpp:408 #: ../src/widgets/spray-toolbar.cpp:438 ../src/widgets/spray-toolbar.cpp:456 @@ -28484,26 +28840,26 @@ msgstr "" msgid "Pattern offset" msgstr "" -#: ../src/widgets/desktop-widget.cpp:422 +#: ../src/widgets/desktop-widget.cpp:423 msgid "Zoom drawing if window size changes" msgstr "" #. Display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:566 +#: ../src/widgets/desktop-widget.cpp:567 msgid "" "Welcome to Inkscape! Use shape or freehand tools to create objects; " "use selector (arrow) to move or transform them." msgstr "" -#: ../src/widgets/desktop-widget.cpp:600 +#: ../src/widgets/desktop-widget.cpp:601 msgid "Rotation. (Also Ctrl+Shift+Scroll)" msgstr "" -#: ../src/widgets/desktop-widget.cpp:634 +#: ../src/widgets/desktop-widget.cpp:635 msgid "Cursor coordinates" msgstr "" -#: ../src/widgets/desktop-widget.cpp:646 +#: ../src/widgets/desktop-widget.cpp:647 msgid "Z:" msgstr "" @@ -28694,66 +29050,66 @@ msgstr "" msgid "Set pattern on stroke" msgstr "" -#: ../src/widgets/font-selector.cpp:103 ../src/widgets/text-toolbar.cpp:1366 -#: ../src/widgets/text-toolbar.cpp:1738 +#: ../src/widgets/font-selector.cpp:101 ../src/widgets/text-toolbar.cpp:1583 +#: ../src/widgets/text-toolbar.cpp:2040 msgid "Font size" msgstr "" #. gtk_box_set_homogeneous(GTK_BOX(fsel), TRUE); #. gtk_box_set_spacing(GTK_BOX(fsel), 4); #. Family frame -#: ../src/widgets/font-selector.cpp:117 +#: ../src/widgets/font-selector.cpp:115 msgid "Font family" msgstr "" #. Style frame -#: ../src/widgets/font-selector.cpp:166 +#: ../src/widgets/font-selector.cpp:164 msgctxt "Font selector" msgid "Style" msgstr "" -#: ../src/widgets/font-selector.cpp:194 +#: ../src/widgets/font-selector.cpp:192 msgid "Face" msgstr "" -#: ../src/widgets/font-selector.cpp:219 ../share/extensions/dots.inx.h:3 +#: ../src/widgets/font-selector.cpp:217 ../share/extensions/dots.inx.h:3 #: ../share/extensions/nicechart.inx.h:17 msgid "Font size:" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:185 +#: ../src/widgets/gimp/ruler.cpp:188 msgid "The orientation of the ruler" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:195 +#: ../src/widgets/gimp/ruler.cpp:198 msgid "Unit of the ruler" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:202 +#: ../src/widgets/gimp/ruler.cpp:205 msgid "Lower" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:203 +#: ../src/widgets/gimp/ruler.cpp:206 msgid "Lower limit of ruler" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:212 +#: ../src/widgets/gimp/ruler.cpp:215 msgid "Upper" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:213 +#: ../src/widgets/gimp/ruler.cpp:216 msgid "Upper limit of ruler" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:223 +#: ../src/widgets/gimp/ruler.cpp:226 msgid "Position of mark on the ruler" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:232 +#: ../src/widgets/gimp/ruler.cpp:235 msgid "Max Size" msgstr "" -#: ../src/widgets/gimp/ruler.cpp:233 +#: ../src/widgets/gimp/ruler.cpp:236 msgid "Maximum size of the ruler" msgstr "" @@ -28766,7 +29122,7 @@ msgid "Edit gradient" msgstr "" #: ../src/widgets/gradient-selector.cpp:266 -#: ../src/widgets/paint-selector.cpp:221 +#: ../src/widgets/paint-selector.cpp:223 msgid "Swatch" msgstr "" @@ -28790,7 +29146,7 @@ msgid "Multiple stops" msgstr "" #: ../src/widgets/gradient-toolbar.cpp:777 -#: ../src/widgets/gradient-vector.cpp:578 +#: ../src/widgets/gradient-vector.cpp:562 msgid "No stops in gradient" msgstr "" @@ -28803,7 +29159,7 @@ msgid "Set gradient repeat" msgstr "" #: ../src/widgets/gradient-toolbar.cpp:991 -#: ../src/widgets/gradient-vector.cpp:691 +#: ../src/widgets/gradient-vector.cpp:670 msgid "Change gradient stop offset" msgstr "" @@ -28907,7 +29263,7 @@ msgstr "" #. Label #: ../src/widgets/gradient-toolbar.cpp:1160 -#: ../src/widgets/gradient-vector.cpp:868 +#: ../src/widgets/gradient-vector.cpp:847 msgctxt "Gradient" msgid "Offset:" msgstr "" @@ -28923,7 +29279,7 @@ msgstr "" #: ../src/widgets/gradient-toolbar.cpp:1192 #: ../src/widgets/gradient-toolbar.cpp:1193 -#: ../src/widgets/gradient-vector.cpp:854 +#: ../src/widgets/gradient-vector.cpp:833 msgid "Delete stop" msgstr "" @@ -28939,43 +29295,43 @@ msgstr "" msgid "Link gradients to change all related gradients" msgstr "" -#: ../src/widgets/gradient-vector.cpp:289 ../src/widgets/paint-selector.cpp:917 -#: ../src/widgets/paint-selector.cpp:1269 -#: ../src/widgets/stroke-marker-selector.cpp:149 +#: ../src/widgets/gradient-vector.cpp:288 ../src/widgets/paint-selector.cpp:904 +#: ../src/widgets/paint-selector.cpp:1240 +#: ../src/widgets/stroke-marker-selector.cpp:147 msgid "No document selected" msgstr "" -#: ../src/widgets/gradient-vector.cpp:293 +#: ../src/widgets/gradient-vector.cpp:292 msgid "No gradients in document" msgstr "" -#: ../src/widgets/gradient-vector.cpp:297 +#: ../src/widgets/gradient-vector.cpp:296 msgid "No gradient selected" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:849 +#: ../src/widgets/gradient-vector.cpp:828 msgid "Add stop" msgstr "" -#: ../src/widgets/gradient-vector.cpp:852 +#: ../src/widgets/gradient-vector.cpp:831 msgid "Add another control stop to gradient" msgstr "" -#: ../src/widgets/gradient-vector.cpp:857 +#: ../src/widgets/gradient-vector.cpp:836 msgid "Delete current control stop from gradient" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:918 +#: ../src/widgets/gradient-vector.cpp:897 msgid "Stop Color" msgstr "" -#: ../src/widgets/gradient-vector.cpp:957 +#: ../src/widgets/gradient-vector.cpp:936 msgid "Gradient editor" msgstr "" -#: ../src/widgets/gradient-vector.cpp:1301 +#: ../src/widgets/gradient-vector.cpp:1280 msgid "Change gradient stop color" msgstr "" @@ -29033,14 +29389,6 @@ msgstr "" msgid "Display measuring info for selected items" msgstr "" -#. Add the units menu. -#: ../src/widgets/lpe-toolbar.cpp:380 ../src/widgets/node-toolbar.cpp:611 -#: ../src/widgets/paintbucket-toolbar.cpp:166 -#: ../src/widgets/rect-toolbar.cpp:374 ../src/widgets/select-toolbar.cpp:520 -#: ../src/widgets/text-toolbar.cpp:2020 -msgid "Units" -msgstr "" - #: ../src/widgets/lpe-toolbar.cpp:390 msgid "Open LPE dialog" msgstr "" @@ -29058,108 +29406,125 @@ msgid "Start and end measures active." msgstr "" #: ../src/widgets/measure-toolbar.cpp:175 -msgid "Show all crossings." +msgid "Measures only selected." msgstr "" #: ../src/widgets/measure-toolbar.cpp:177 -msgid "Show visible crossings." +msgid "Measure all." msgstr "" #: ../src/widgets/measure-toolbar.cpp:193 -msgid "Use all layers in the measure." +msgid "Show all crossings." msgstr "" #: ../src/widgets/measure-toolbar.cpp:195 -msgid "Use current layer in the measure." +msgid "Show visible crossings." msgstr "" #: ../src/widgets/measure-toolbar.cpp:211 -msgid "Compute all elements." +msgid "Use all layers in the measure." msgstr "" #: ../src/widgets/measure-toolbar.cpp:213 +msgid "Use current layer in the measure." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:229 +msgid "Compute all elements." +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:231 msgid "Compute max length." msgstr "" -#: ../src/widgets/measure-toolbar.cpp:274 ../src/widgets/text-toolbar.cpp:1741 +#: ../src/widgets/measure-toolbar.cpp:292 ../src/widgets/text-toolbar.cpp:2043 msgid "Font Size" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:274 +#: ../src/widgets/measure-toolbar.cpp:292 msgid "Font Size:" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:275 +#: ../src/widgets/measure-toolbar.cpp:293 msgid "The font size to be used in the measurement labels" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:286 -#: ../src/widgets/measure-toolbar.cpp:294 +#: ../src/widgets/measure-toolbar.cpp:304 +#: ../src/widgets/measure-toolbar.cpp:312 msgid "The units to be used for the measurements" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:302 ../share/extensions/measure.inx.h:14 +#: ../src/widgets/measure-toolbar.cpp:320 ../share/extensions/measure.inx.h:14 msgid "Precision:" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:303 +#: ../src/widgets/measure-toolbar.cpp:321 msgid "Decimal precision of measure" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:315 +#: ../src/widgets/measure-toolbar.cpp:333 +msgid "Scale %" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:333 msgid "Scale %:" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:316 +#: ../src/widgets/measure-toolbar.cpp:334 msgid "Scale the results" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:329 +#: ../src/widgets/measure-toolbar.cpp:347 msgid "Mark dimension offset" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:341 -#: ../src/widgets/measure-toolbar.cpp:342 +#: ../src/widgets/measure-toolbar.cpp:359 +#: ../src/widgets/measure-toolbar.cpp:360 +msgid "Measure only selected" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:371 +#: ../src/widgets/measure-toolbar.cpp:372 msgid "Ignore first and last" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:352 -#: ../src/widgets/measure-toolbar.cpp:353 +#: ../src/widgets/measure-toolbar.cpp:382 +#: ../src/widgets/measure-toolbar.cpp:383 msgid "Show hidden intersections" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:363 -#: ../src/widgets/measure-toolbar.cpp:364 +#: ../src/widgets/measure-toolbar.cpp:393 +#: ../src/widgets/measure-toolbar.cpp:394 msgid "Show measures between items" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:374 -#: ../src/widgets/measure-toolbar.cpp:375 +#: ../src/widgets/measure-toolbar.cpp:404 +#: ../src/widgets/measure-toolbar.cpp:405 msgid "Measure all layers" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:385 -#: ../src/widgets/measure-toolbar.cpp:386 +#: ../src/widgets/measure-toolbar.cpp:415 +#: ../src/widgets/measure-toolbar.cpp:416 msgid "Reverse measure" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:395 -#: ../src/widgets/measure-toolbar.cpp:396 +#: ../src/widgets/measure-toolbar.cpp:425 +#: ../src/widgets/measure-toolbar.cpp:426 msgid "Phantom measure" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:405 -#: ../src/widgets/measure-toolbar.cpp:406 +#: ../src/widgets/measure-toolbar.cpp:435 +#: ../src/widgets/measure-toolbar.cpp:436 msgid "To guides" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:415 -#: ../src/widgets/measure-toolbar.cpp:416 +#: ../src/widgets/measure-toolbar.cpp:445 +#: ../src/widgets/measure-toolbar.cpp:446 msgid "Mark Dimension" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:425 -#: ../src/widgets/measure-toolbar.cpp:426 +#: ../src/widgets/measure-toolbar.cpp:455 +#: ../src/widgets/measure-toolbar.cpp:456 msgid "Convert to item" msgstr "" @@ -29262,7 +29627,7 @@ msgstr "" msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:545 ../src/widgets/pencil-toolbar.cpp:377 +#: ../src/widgets/mesh-toolbar.cpp:545 ../src/widgets/pencil-toolbar.cpp:530 msgid "Smoothing:" msgstr "" @@ -29508,92 +29873,92 @@ msgstr "" msgid "Y coordinate of selected node(s)" msgstr "" -#: ../src/widgets/paint-selector.cpp:207 +#: ../src/widgets/paint-selector.cpp:209 msgid "No paint" msgstr "" -#: ../src/widgets/paint-selector.cpp:209 +#: ../src/widgets/paint-selector.cpp:211 msgid "Flat color" msgstr "" -#: ../src/widgets/paint-selector.cpp:211 +#: ../src/widgets/paint-selector.cpp:213 msgid "Linear gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:213 +#: ../src/widgets/paint-selector.cpp:215 msgid "Radial gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:216 +#: ../src/widgets/paint-selector.cpp:218 msgid "Mesh gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:223 +#: ../src/widgets/paint-selector.cpp:225 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:236 +#: ../src/widgets/paint-selector.cpp:238 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:247 +#: ../src/widgets/paint-selector.cpp:249 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -#: ../src/widgets/paint-selector.cpp:589 +#: ../src/widgets/paint-selector.cpp:591 msgid "No objects" msgstr "" -#: ../src/widgets/paint-selector.cpp:600 +#: ../src/widgets/paint-selector.cpp:602 msgid "Multiple styles" msgstr "" -#: ../src/widgets/paint-selector.cpp:611 +#: ../src/widgets/paint-selector.cpp:613 msgid "Paint is undefined" msgstr "" -#: ../src/widgets/paint-selector.cpp:622 +#: ../src/widgets/paint-selector.cpp:624 msgid "No paint" msgstr "" -#: ../src/widgets/paint-selector.cpp:702 +#: ../src/widgets/paint-selector.cpp:704 msgid "Flat color" msgstr "" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:766 +#: ../src/widgets/paint-selector.cpp:768 msgid "Linear gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:769 +#: ../src/widgets/paint-selector.cpp:771 msgid "Radial gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:1038 +#: ../src/widgets/paint-selector.cpp:1025 msgid "Use the Mesh tool to modify the mesh." msgstr "" -#: ../src/widgets/paint-selector.cpp:1051 +#: ../src/widgets/paint-selector.cpp:1038 msgid "Mesh fill" msgstr "" -#: ../src/widgets/paint-selector.cpp:1390 +#: ../src/widgets/paint-selector.cpp:1361 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:1403 +#: ../src/widgets/paint-selector.cpp:1374 msgid "Pattern fill" msgstr "" -#: ../src/widgets/paint-selector.cpp:1497 +#: ../src/widgets/paint-selector.cpp:1468 msgid "Swatch fill" msgstr "" @@ -29637,7 +30002,7 @@ msgid "Close gaps:" msgstr "" #: ../src/widgets/paintbucket-toolbar.cpp:210 -#: ../src/widgets/pencil-toolbar.cpp:398 ../src/widgets/spiral-toolbar.cpp:282 +#: ../src/widgets/pencil-toolbar.cpp:551 ../src/widgets/spiral-toolbar.cpp:282 #: ../src/widgets/star-toolbar.cpp:562 msgid "Defaults" msgstr "" @@ -29648,102 +30013,134 @@ msgid "" "to change defaults)" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:102 +#: ../src/widgets/pencil-toolbar.cpp:122 msgid "Bezier" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:103 +#: ../src/widgets/pencil-toolbar.cpp:123 msgid "Create regular Bezier path" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:110 +#: ../src/widgets/pencil-toolbar.cpp:130 msgid "Create Spiro path" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:116 +#: ../src/widgets/pencil-toolbar.cpp:136 msgid "Create BSpline path" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:122 +#: ../src/widgets/pencil-toolbar.cpp:142 msgid "Zigzag" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:123 +#: ../src/widgets/pencil-toolbar.cpp:143 msgid "Create a sequence of straight line segments" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:129 +#: ../src/widgets/pencil-toolbar.cpp:149 msgid "Paraxial" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:130 +#: ../src/widgets/pencil-toolbar.cpp:150 msgid "Create a sequence of paraxial line segments" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:138 +#: ../src/widgets/pencil-toolbar.cpp:157 msgid "Mode of new lines drawn by this tool" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:173 +#: ../src/widgets/pencil-toolbar.cpp:174 ../src/widgets/pencil-toolbar.cpp:175 +msgid "LPE spiro or bspline flatten" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:216 msgctxt "Freehand shape" msgid "None" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:174 +#: ../src/widgets/pencil-toolbar.cpp:217 msgid "Triangle in" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:175 +#: ../src/widgets/pencil-toolbar.cpp:218 msgid "Triangle out" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:177 +#: ../src/widgets/pencil-toolbar.cpp:220 msgid "From clipboard" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:178 +#: ../src/widgets/pencil-toolbar.cpp:221 msgid "Bend from clipboard" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:179 +#: ../src/widgets/pencil-toolbar.cpp:222 msgid "Last applied" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:204 ../src/widgets/pencil-toolbar.cpp:205 +#: ../src/widgets/pencil-toolbar.cpp:233 ../src/widgets/pencil-toolbar.cpp:234 msgid "Shape:" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:204 +#: ../src/widgets/pencil-toolbar.cpp:233 msgid "Shape of new paths drawn by this tool" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:374 +#: ../src/widgets/pencil-toolbar.cpp:474 +msgid "Min presure" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:474 +msgid "Min:" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:474 +msgid "Min percent of pressure" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:492 +msgid "Max presure" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:492 +msgid "Max:" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:492 +msgid "Max percent of pressure" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:509 ../src/widgets/pencil-toolbar.cpp:510 +msgid "Use pressure input" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:527 msgid "(many nodes, rough)" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:374 +#: ../src/widgets/pencil-toolbar.cpp:527 msgid "(few nodes, smooth)" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:377 +#: ../src/widgets/pencil-toolbar.cpp:530 msgid "Smoothing: " msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:378 +#: ../src/widgets/pencil-toolbar.cpp:531 msgid "How much smoothing (simplifying) is applied to the line" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:399 +#: ../src/widgets/pencil-toolbar.cpp:552 msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:409 ../src/widgets/pencil-toolbar.cpp:410 +#: ../src/widgets/pencil-toolbar.cpp:561 ../src/widgets/pencil-toolbar.cpp:562 msgid "LPE based interactive simplify" msgstr "" -#: ../src/widgets/pencil-toolbar.cpp:420 ../src/widgets/pencil-toolbar.cpp:421 +#: ../src/widgets/pencil-toolbar.cpp:579 ../src/widgets/pencil-toolbar.cpp:580 msgid "LPE simplify flatten" msgstr "" @@ -29771,26 +30168,10 @@ msgstr "" msgid "not rounded" msgstr "" -#: ../src/widgets/rect-toolbar.cpp:347 -msgid "Horizontal radius" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:347 -msgid "Rx:" -msgstr "" - #: ../src/widgets/rect-toolbar.cpp:347 msgid "Horizontal radius of rounded corners" msgstr "" -#: ../src/widgets/rect-toolbar.cpp:362 -msgid "Vertical radius" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:362 -msgid "Ry:" -msgstr "" - #: ../src/widgets/rect-toolbar.cpp:362 msgid "Vertical radius of rounded corners" msgstr "" @@ -29951,10 +30332,6 @@ msgstr "" msgid "Unnamed" msgstr "" -#: ../src/widgets/sp-xmlview-attr-list.cpp:55 -msgid "Value" -msgstr "" - #: ../src/widgets/sp-xmlview-content.cpp:134 msgid "Type text in a text node" msgstr "" @@ -30423,7 +30800,7 @@ msgstr "" msgid "Scatter randomly the corners and angles" msgstr "" -#: ../src/widgets/stroke-marker-selector.cpp:383 +#: ../src/widgets/stroke-marker-selector.cpp:368 msgctxt "Marker" msgid "None" msgstr "" @@ -30549,343 +30926,395 @@ msgstr "" msgid "Change swatch color" msgstr "" -#: ../src/widgets/text-toolbar.cpp:178 +#: ../src/widgets/text-toolbar.cpp:182 msgid "Text: Change font family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:272 +#: ../src/widgets/text-toolbar.cpp:276 msgid "Text: Change font size" msgstr "" -#: ../src/widgets/text-toolbar.cpp:317 +#: ../src/widgets/text-toolbar.cpp:321 msgid "Text: Change font style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:356 +#: ../src/widgets/text-toolbar.cpp:360 msgid "Text: Unset line height." msgstr "" -#: ../src/widgets/text-toolbar.cpp:433 +#: ../src/widgets/text-toolbar.cpp:437 msgid "Text: Change superscript or subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:574 +#: ../src/widgets/text-toolbar.cpp:578 msgid "Text: Change alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:677 +#: ../src/widgets/text-toolbar.cpp:711 msgid "Text: Change line-height" msgstr "" -#: ../src/widgets/text-toolbar.cpp:832 +#: ../src/widgets/text-toolbar.cpp:875 msgid "Text: Change line-height unit" msgstr "" -#: ../src/widgets/text-toolbar.cpp:881 +#: ../src/widgets/text-toolbar.cpp:1055 +msgid "Text: Change line spacing mode" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1092 msgid "Text: Change word-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:921 +#: ../src/widgets/text-toolbar.cpp:1132 msgid "Text: Change letter-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:959 +#: ../src/widgets/text-toolbar.cpp:1170 msgid "Text: Change dx (kern)" msgstr "" -#: ../src/widgets/text-toolbar.cpp:993 +#: ../src/widgets/text-toolbar.cpp:1204 msgid "Text: Change dy" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1028 +#: ../src/widgets/text-toolbar.cpp:1239 msgid "Text: Change rotate" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1079 +#: ../src/widgets/text-toolbar.cpp:1290 msgid "Text: Change writing mode" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1131 +#: ../src/widgets/text-toolbar.cpp:1344 msgid "Text: Change orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1177 +#: ../src/widgets/text-toolbar.cpp:1392 msgid "Text: Change direction" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1690 +#: ../src/widgets/text-toolbar.cpp:1992 msgid "Font Family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1691 +#: ../src/widgets/text-toolbar.cpp:1993 msgid "Select Font Family (Alt-X to access)" msgstr "" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1701 +#: ../src/widgets/text-toolbar.cpp:2003 msgid "Select all text with this font-family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1705 +#: ../src/widgets/text-toolbar.cpp:2007 msgid "Font not found on system" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1763 +#: ../src/widgets/text-toolbar.cpp:2065 msgid "Font Style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1764 +#: ../src/widgets/text-toolbar.cpp:2066 msgid "Font style" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1781 +#: ../src/widgets/text-toolbar.cpp:2083 msgid "Toggle Superscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1782 +#: ../src/widgets/text-toolbar.cpp:2084 msgid "Toggle superscript" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1794 +#: ../src/widgets/text-toolbar.cpp:2096 msgid "Toggle Subscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1795 +#: ../src/widgets/text-toolbar.cpp:2097 msgid "Toggle subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1831 +#: ../src/widgets/text-toolbar.cpp:2133 msgid "Justify" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1838 +#: ../src/widgets/text-toolbar.cpp:2140 msgid "Alignment" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1839 +#: ../src/widgets/text-toolbar.cpp:2141 msgid "Text alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1868 +#: ../src/widgets/text-toolbar.cpp:2170 msgid "Vertical — RL" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1869 +#: ../src/widgets/text-toolbar.cpp:2171 msgid "Vertical text — lines: right to left" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1874 +#: ../src/widgets/text-toolbar.cpp:2176 msgid "Vertical — LR" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1875 +#: ../src/widgets/text-toolbar.cpp:2177 msgid "Vertical text — lines: left to right" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1881 +#: ../src/widgets/text-toolbar.cpp:2183 msgid "Writing mode" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1882 +#: ../src/widgets/text-toolbar.cpp:2184 msgid "Block progression" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1906 +#: ../src/widgets/text-toolbar.cpp:2208 msgid "Auto glyph orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1911 +#: ../src/widgets/text-toolbar.cpp:2213 msgid "Upright" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1912 +#: ../src/widgets/text-toolbar.cpp:2214 msgid "Upright glyph orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1917 +#: ../src/widgets/text-toolbar.cpp:2219 msgid "Sideways" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1918 +#: ../src/widgets/text-toolbar.cpp:2220 msgid "Sideways glyph orientation" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1924 +#: ../src/widgets/text-toolbar.cpp:2226 msgid "Text orientation" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1925 +#: ../src/widgets/text-toolbar.cpp:2227 msgid "Text (glyph) orientation in vertical text." msgstr "" -#: ../src/widgets/text-toolbar.cpp:1949 +#: ../src/widgets/text-toolbar.cpp:2251 msgid "LTR" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1950 +#: ../src/widgets/text-toolbar.cpp:2252 msgid "Left to right text" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1955 +#: ../src/widgets/text-toolbar.cpp:2257 msgid "RTL" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1956 +#: ../src/widgets/text-toolbar.cpp:2258 msgid "Right to left text" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1962 +#: ../src/widgets/text-toolbar.cpp:2264 msgid "Text direction" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1963 +#: ../src/widgets/text-toolbar.cpp:2265 msgid "Text direction for normally horizontal text." msgstr "" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1989 +#: ../src/widgets/text-toolbar.cpp:2291 msgid "Smaller spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1989 ../src/widgets/text-toolbar.cpp:2028 -#: ../src/widgets/text-toolbar.cpp:2059 +#: ../src/widgets/text-toolbar.cpp:2291 ../src/widgets/text-toolbar.cpp:2379 +#: ../src/widgets/text-toolbar.cpp:2410 msgctxt "Text tool" msgid "Normal" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1989 +#: ../src/widgets/text-toolbar.cpp:2291 msgid "Larger spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1994 +#: ../src/widgets/text-toolbar.cpp:2296 msgid "Line Height" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1995 +#: ../src/widgets/text-toolbar.cpp:2297 msgid "Line:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1996 +#: ../src/widgets/text-toolbar.cpp:2298 msgid "Spacing between baselines" msgstr "" +#: ../src/widgets/text-toolbar.cpp:2337 +msgid "Adaptive" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2338 +msgid "Line spacing adapts to font size." +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2343 +#: ../share/extensions/polyhedron_3d.inx.h:54 +msgid "Minimum" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2344 +msgid "Line spacing adapts to fonts size with set minimum spacing." +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2348 +msgid "Even" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2349 +msgid "Lines evenly spaced." +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2354 +msgid "Adjustable ☠" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:2355 +msgid "Line spacing fully adjustable" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:2361 +msgid "Line Spacing Mode" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:2362 +msgid "" +"How should multiple baselines be spaced?\n" +" Adaptive: Line spacing adapts to font size.\n" +" Minimum: Like Adaptive, but with a set minimum.\n" +" Even: Evenly spaced.\n" +" Adjustable: No restrictions." +msgstr "" + #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:2028 ../src/widgets/text-toolbar.cpp:2059 +#: ../src/widgets/text-toolbar.cpp:2379 ../src/widgets/text-toolbar.cpp:2410 msgid "Negative spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:2028 ../src/widgets/text-toolbar.cpp:2059 +#: ../src/widgets/text-toolbar.cpp:2379 ../src/widgets/text-toolbar.cpp:2410 msgid "Positive spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:2033 +#: ../src/widgets/text-toolbar.cpp:2384 msgid "Word spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:2034 +#: ../src/widgets/text-toolbar.cpp:2385 msgid "Word:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:2035 +#: ../src/widgets/text-toolbar.cpp:2386 msgid "Spacing between words (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:2064 +#: ../src/widgets/text-toolbar.cpp:2415 msgid "Letter spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:2065 +#: ../src/widgets/text-toolbar.cpp:2416 msgid "Letter:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:2066 +#: ../src/widgets/text-toolbar.cpp:2417 msgid "Spacing between letters (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:2095 +#: ../src/widgets/text-toolbar.cpp:2446 msgid "Kerning" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:2096 +#: ../src/widgets/text-toolbar.cpp:2447 msgid "Kern:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:2097 +#: ../src/widgets/text-toolbar.cpp:2448 msgid "Horizontal kerning (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:2126 +#: ../src/widgets/text-toolbar.cpp:2477 msgid "Vertical Shift" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:2127 +#: ../src/widgets/text-toolbar.cpp:2478 msgid "Vert:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:2128 +#: ../src/widgets/text-toolbar.cpp:2479 msgid "Vertical shift (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:2157 +#: ../src/widgets/text-toolbar.cpp:2508 msgid "Letter rotation" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:2158 +#: ../src/widgets/text-toolbar.cpp:2509 msgid "Rot:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:2159 +#: ../src/widgets/text-toolbar.cpp:2510 msgid "Character rotation (degrees)" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:2183 +#: ../src/widgets/text-toolbar.cpp:2534 msgid "Unset line height" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:2184 +#: ../src/widgets/text-toolbar.cpp:2535 msgid "If enabled, line height is set on part of selection. Click to unset." msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:2196 +#: ../src/widgets/text-toolbar.cpp:2547 msgid "Show outer style" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:2197 +#: ../src/widgets/text-toolbar.cpp:2548 msgid "" "Show style of outermost text element. The 'font-size' and 'line-height' " "values of the outermost text element determine the minimum line spacing in " @@ -30936,131 +31365,131 @@ msgstr "" msgid "Style of Paint Bucket fill objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1245 +#: ../src/widgets/toolbox.cpp:1240 msgid "Bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1245 +#: ../src/widgets/toolbox.cpp:1240 msgid "Snap bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1254 +#: ../src/widgets/toolbox.cpp:1249 msgid "Bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1254 +#: ../src/widgets/toolbox.cpp:1249 msgid "Snap to edges of a bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1263 +#: ../src/widgets/toolbox.cpp:1258 msgid "Bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1263 +#: ../src/widgets/toolbox.cpp:1258 msgid "Snap bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1272 +#: ../src/widgets/toolbox.cpp:1267 msgid "BBox Edge Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1272 +#: ../src/widgets/toolbox.cpp:1267 msgid "Snap midpoints of bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1282 +#: ../src/widgets/toolbox.cpp:1277 msgid "BBox Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1282 +#: ../src/widgets/toolbox.cpp:1277 msgid "Snapping centers of bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1291 +#: ../src/widgets/toolbox.cpp:1286 msgid "Snap nodes, paths, and handles" msgstr "" -#: ../src/widgets/toolbox.cpp:1299 +#: ../src/widgets/toolbox.cpp:1294 msgid "Snap to paths" msgstr "" -#: ../src/widgets/toolbox.cpp:1308 +#: ../src/widgets/toolbox.cpp:1303 msgid "Path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1308 +#: ../src/widgets/toolbox.cpp:1303 msgid "Snap to path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1317 +#: ../src/widgets/toolbox.cpp:1312 msgid "To nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1317 +#: ../src/widgets/toolbox.cpp:1312 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1326 +#: ../src/widgets/toolbox.cpp:1321 msgid "Smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1326 +#: ../src/widgets/toolbox.cpp:1321 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:1335 +#: ../src/widgets/toolbox.cpp:1330 msgid "Line Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1335 +#: ../src/widgets/toolbox.cpp:1330 msgid "Snap midpoints of line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:1344 +#: ../src/widgets/toolbox.cpp:1339 msgid "Others" msgstr "" -#: ../src/widgets/toolbox.cpp:1344 +#: ../src/widgets/toolbox.cpp:1339 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../src/widgets/toolbox.cpp:1352 +#: ../src/widgets/toolbox.cpp:1347 msgid "Object Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1352 +#: ../src/widgets/toolbox.cpp:1347 msgid "Snap centers of objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1361 +#: ../src/widgets/toolbox.cpp:1356 msgid "Rotation Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1361 +#: ../src/widgets/toolbox.cpp:1356 msgid "Snap an item's rotation center" msgstr "" -#: ../src/widgets/toolbox.cpp:1370 +#: ../src/widgets/toolbox.cpp:1365 msgid "Text baseline" msgstr "" -#: ../src/widgets/toolbox.cpp:1370 +#: ../src/widgets/toolbox.cpp:1365 msgid "Snap text anchors and baselines" msgstr "" -#: ../src/widgets/toolbox.cpp:1380 +#: ../src/widgets/toolbox.cpp:1375 msgid "Page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1380 +#: ../src/widgets/toolbox.cpp:1375 msgid "Snap to the page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1389 +#: ../src/widgets/toolbox.cpp:1384 msgid "Snap to grids" msgstr "" -#: ../src/widgets/toolbox.cpp:1398 +#: ../src/widgets/toolbox.cpp:1393 msgid "Snap guides" msgstr "" @@ -31619,19 +32048,23 @@ msgstr "" msgid "Please select an object" msgstr "" -#: ../share/extensions/gimp_xcf.py:37 +#: ../share/extensions/gimp_xcf.py:38 msgid "Inkscape must be installed and set in your path variable." msgstr "" -#: ../share/extensions/gimp_xcf.py:41 +#: ../share/extensions/gimp_xcf.py:42 msgid "Gimp must be installed and set in your path variable." msgstr "" -#: ../share/extensions/gimp_xcf.py:45 +#: ../share/extensions/gimp_xcf.py:46 msgid "An error occurred while processing the XCF file." msgstr "" -#: ../share/extensions/gimp_xcf.py:183 +#: ../share/extensions/gimp_xcf.py:92 ../share/extensions/inkex.py:358 +msgid "SVG Width not set correctly! Assuming width = 100" +msgstr "" + +#: ../share/extensions/gimp_xcf.py:228 msgid "This extension requires at least one non empty layer." msgstr "" @@ -31691,11 +32124,11 @@ msgstr "" msgid "No matching node for expression: %s" msgstr "" -#: ../share/extensions/inkex.py:358 -msgid "SVG Width not set correctly! Assuming width = 100" +#: ../share/extensions/interp_att_g.py:146 +msgid "You selected 'Other'. Please enter an attribute to interpolate." msgstr "" -#: ../share/extensions/interp_att_g.py:175 +#: ../share/extensions/interp_att_g.py:182 msgid "There is no selection to interpolate" msgstr "" @@ -31926,31 +32359,34 @@ msgid "" "numpy." msgstr "" -#: ../share/extensions/perspective.py:60 ../share/extensions/summersnight.py:49 +#: ../share/extensions/perspective.py:69 ../share/extensions/summersnight.py:58 #, python-format msgid "" "The first selected object is of type '%s'.\n" "Try using the procedure Path->Object to Path." msgstr "" -#: ../share/extensions/perspective.py:67 ../share/extensions/summersnight.py:57 +#: ../share/extensions/perspective.py:76 ../share/extensions/summersnight.py:66 msgid "" "This extension requires that the second selected path be four nodes long." msgstr "" -#: ../share/extensions/perspective.py:93 ../share/extensions/summersnight.py:90 +#: ../share/extensions/perspective.py:102 +#: ../share/extensions/summersnight.py:99 msgid "" "The second selected object is a group, not a path.\n" "Try using the procedure Object->Ungroup." msgstr "" -#: ../share/extensions/perspective.py:95 ../share/extensions/summersnight.py:92 +#: ../share/extensions/perspective.py:104 +#: ../share/extensions/summersnight.py:101 msgid "" "The second selected object is not a path.\n" "Try using the procedure Path->Object to Path." msgstr "" -#: ../share/extensions/perspective.py:98 ../share/extensions/summersnight.py:95 +#: ../share/extensions/perspective.py:107 +#: ../share/extensions/summersnight.py:104 msgid "" "The first selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -32212,7 +32648,7 @@ msgstr "" #: ../share/extensions/convert2dashes.inx.h:2 #: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 #: ../share/extensions/fractalize.inx.h:4 -#: ../share/extensions/interp_att_g.inx.h:31 +#: ../share/extensions/interp_att_g.inx.h:34 #: ../share/extensions/jitternodes.inx.h:14 #: ../share/extensions/markers_strokepaint.inx.h:13 #: ../share/extensions/perspective.inx.h:2 @@ -34985,11 +35421,11 @@ msgstr "" msgid "Interpolate style" msgstr "" -#: ../share/extensions/interp.inx.h:7 ../share/extensions/interp_att_g.inx.h:10 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/interp_att_g.inx.h:12 msgid "Use Z-order" msgstr "" -#: ../share/extensions/interp.inx.h:8 ../share/extensions/interp_att_g.inx.h:11 +#: ../share/extensions/interp.inx.h:8 ../share/extensions/interp_att_g.inx.h:13 msgid "Workaround for reversed selection order in Live Preview cycles" msgstr "" @@ -35006,70 +35442,83 @@ msgid "Other Attribute:" msgstr "" #: ../share/extensions/interp_att_g.inx.h:5 -msgid "Other Attribute type:" +msgid "Examples: r, width, inkscape:rounded, sodipodi:sides" msgstr "" #: ../share/extensions/interp_att_g.inx.h:6 -msgid "Apply to:" +msgid "Other Attribute type:" msgstr "" #: ../share/extensions/interp_att_g.inx.h:7 -msgid "Start Value:" +msgid "Apply to:" msgstr "" #: ../share/extensions/interp_att_g.inx.h:8 +msgid "Start Value:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:9 +msgid "Examples: 0.5, 5, #rgb, #rrggbb or r, g, b" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:10 msgid "End Value:" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/interp_att_g.inx.h:17 msgid "Translate X" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:16 +#: ../share/extensions/interp_att_g.inx.h:18 msgid "Translate Y" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:17 +#: ../share/extensions/interp_att_g.inx.h:19 #: ../share/extensions/markers_strokepaint.inx.h:9 msgid "Fill" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:19 +#: ../share/extensions/interp_att_g.inx.h:21 msgid "Other" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:20 +#: ../share/extensions/interp_att_g.inx.h:22 +msgid "Other Attribute" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:23 msgid "" -"If you select \"Other\", you must know the SVG attributes to identify here " -"this \"other\"." +"If you selected \"Other\" above, you must specify the details for this " +"\"other\" here." msgstr "" -#: ../share/extensions/interp_att_g.inx.h:22 +#: ../share/extensions/interp_att_g.inx.h:25 msgid "Integer Number" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:23 +#: ../share/extensions/interp_att_g.inx.h:26 msgid "Float Number" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:25 +#: ../share/extensions/interp_att_g.inx.h:28 #: ../share/extensions/polyhedron_3d.inx.h:33 msgid "Style" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:26 +#: ../share/extensions/interp_att_g.inx.h:29 msgid "Transformation" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:27 -msgid "••••••••••••••••••••••••••••••••••••••••••••••••" +#: ../share/extensions/interp_att_g.inx.h:30 +#: ../share/extensions/nicechart.inx.h:38 +msgid "Values" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:28 +#: ../share/extensions/interp_att_g.inx.h:31 msgid "No Unit" msgstr "" -#: ../share/extensions/interp_att_g.inx.h:30 +#: ../share/extensions/interp_att_g.inx.h:33 msgid "" "This effect applies a value for any interpolatable attribute for all " "elements inside the selected group or for all elements in a multiple " @@ -36100,10 +36549,6 @@ msgstr "" msgid "SAP" msgstr "" -#: ../share/extensions/nicechart.inx.h:38 -msgid "Values" -msgstr "" - #: ../share/extensions/nicechart.inx.h:39 msgid "Show values" msgstr "" @@ -36723,10 +37168,6 @@ msgstr "" msgid "Maximum" msgstr "" -#: ../share/extensions/polyhedron_3d.inx.h:54 -msgid "Minimum" -msgstr "" - #: ../share/extensions/polyhedron_3d.inx.h:55 msgid "Mean" msgstr "" @@ -38407,45 +38848,49 @@ msgid "_Color display mode" msgstr "" #: ../share/ui/menus.xml.h:10 -msgid "Sh_ow/Hide" +msgid "_Canvas orientation" msgstr "" #: ../share/ui/menus.xml.h:11 -msgid "_Layer" +msgid "Sh_ow/Hide" msgstr "" #: ../share/ui/menus.xml.h:12 -msgid "_Object" +msgid "_Layer" msgstr "" #: ../share/ui/menus.xml.h:13 -msgid "Cli_p" +msgid "_Object" msgstr "" #: ../share/ui/menus.xml.h:14 -msgid "Mas_k" +msgid "Cli_p" msgstr "" #: ../share/ui/menus.xml.h:15 -msgid "Patter_n" +msgid "Mas_k" msgstr "" #: ../share/ui/menus.xml.h:16 +msgid "Patter_n" +msgstr "" + +#: ../share/ui/menus.xml.h:17 msgid "_Path" msgstr "" -#: ../share/ui/menus.xml.h:18 +#: ../share/ui/menus.xml.h:19 msgid "Filter_s" msgstr "" -#: ../share/ui/menus.xml.h:19 +#: ../share/ui/menus.xml.h:20 msgid "Exte_nsions" msgstr "" -#: ../share/ui/menus.xml.h:20 +#: ../share/ui/menus.xml.h:21 msgid "_Help" msgstr "" -#: ../share/ui/menus.xml.h:21 +#: ../share/ui/menus.xml.h:22 msgid "Tutorials" msgstr "" diff --git a/src/live_effects/lpe-perspective_path.cpp b/src/live_effects/lpe-perspective_path.cpp index 435c91c2d..4ec760e41 100644 --- a/src/live_effects/lpe-perspective_path.cpp +++ b/src/live_effects/lpe-perspective_path.cpp @@ -227,7 +227,7 @@ LPEPerspectivePath::newWidget() } Gtk::HBox * perspectiveId = Gtk::manage(new Gtk::HBox(true,0)); -#if WITH_GTKMM_3_10 +#if GTKMM_CHECK_VERSION(3,10,0) Gtk::Label* labelPerspective = Gtk::manage(new Gtk::Label("Perspective ID:", Gtk::ALIGN_START, Gtk::ALIGN_START)); #else Gtk::Label* labelPerspective = Gtk::manage(new Gtk::Label("Perspective ID:", 0., 0.)); @@ -241,7 +241,7 @@ LPEPerspectivePath::newWidget() vbox->pack_start(*perspectiveId, true, true, 2); Gtk::Button* apply3D = Gtk::manage(new Gtk::Button()); -#if WITH_GTKMM_3_10 +#if GTKMM_CHECK_VERSION(3,10,0) Gtk::Label *apply3DLabel = Gtk::manage(new Gtk::Label(_("Refresh perspective"), Gtk::ALIGN_START, Gtk::ALIGN_CENTER)); #else Gtk::Label *apply3DLabel = Gtk::manage(new Gtk::Label(_("Refresh perspective"), 0.0, 0.5)); diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index ef22eca2d..99cc6fbfc 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -37,7 +37,7 @@ #include "sp-root.h" #include -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) # include #else # include @@ -745,7 +745,7 @@ gdouble const NEWDOC_Y_SCALE = NEWDOC_X_SCALE; Geom::Point calcAnchorPoint(gint const x, gint const y, gint const w, gint const h, gint const minOnscreen) { -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) Gdk::Rectangle screen_geometry; auto const display = Gdk::Display::get_default(); @@ -798,7 +798,7 @@ void sp_namedview_window_from_document(SPDesktop *desktop) // TODO: account for multi-monitor setups (i.e. on which monitor do we want to display Inkscape?) Gdk::Rectangle monitor_geometry; -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) auto const display = Gdk::Display::get_default(); auto const monitor = display->get_primary_monitor(); diff --git a/src/ui/dialog/aboutbox.cpp b/src/ui/dialog/aboutbox.cpp index 9b99dde6b..e662362c4 100644 --- a/src/ui/dialog/aboutbox.cpp +++ b/src/ui/dialog/aboutbox.cpp @@ -108,14 +108,14 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { Inkscape::version_string); label->set_markup(label_text); -#if WITH_GTKMM_3_10 +#if GTKMM_CHECK_VERSION(3,10,0) label->set_halign(Gtk::ALIGN_END); label->set_valign(Gtk::ALIGN_CENTER); #else label->set_alignment(Gtk::ALIGN_END, Gtk::ALIGN_CENTER); #endif -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) label->set_margin_start(5); label->set_margin_end(5); #else @@ -132,13 +132,13 @@ AboutBox::AboutBox() : Gtk::Dialog(_("About Inkscape")) { link->set_markup(website_link); -#if WITH_GTKMM_3_10 +#if GTKMM_CHECK_VERSION(3,10,0) link->set_halign(Gtk::ALIGN_END); #else link->set_alignment(Gtk::ALIGN_END); #endif -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) label->set_margin_start(5); label->set_margin_end(5); label->set_margin_top(5); diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp index fbbb4f869..3d949a8c9 100644 --- a/src/ui/dialog/dialog.cpp +++ b/src/ui/dialog/dialog.cpp @@ -20,7 +20,7 @@ #include "dialog-manager.h" #include -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) # include #endif @@ -166,7 +166,7 @@ void Dialog::read_geometry() resize(w, h); } -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) auto const display = Gdk::Display::get_default(); auto monitor = display->get_primary_monitor(); diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index baf70ea82..3d246f4cb 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -228,7 +228,7 @@ inline void attach_all(Gtk::Grid &table, Gtk::Widget *const arr[], unsigned cons // this sets the padding for subordinate widgets on the "Page" page if( indent && (i==(n-6) || i==(n-4) || i==(n-2)) ) { arr[i+1]->set_hexpand(); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) arr[i+1]->set_margin_start(20); arr[i+1]->set_margin_end(20); #else @@ -703,7 +703,7 @@ void DocumentProperties::build_cms() _link_btn.set_halign(Gtk::ALIGN_CENTER); _link_btn.set_valign(Gtk::ALIGN_CENTER); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) _link_btn.set_margin_start(2); _link_btn.set_margin_end(2); #else @@ -809,7 +809,7 @@ void DocumentProperties::build_scripting() _external_add_btn.set_halign(Gtk::ALIGN_CENTER); _external_add_btn.set_valign(Gtk::ALIGN_CENTER); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) _external_add_btn.set_margin_start(2); _external_add_btn.set_margin_end(2); #else diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp index 5bbf4c952..ed2babf80 100644 --- a/src/ui/dialog/layers.cpp +++ b/src/ui/dialog/layers.cpp @@ -151,7 +151,7 @@ Gtk::MenuItem& LayersPanel::_addPopupItem( SPDesktop *desktop, unsigned int code } Gtk::Label *menu_label = Gtk::manage(new Gtk::Label(label, true)); -#if WITH_GTKMM_3_16 +#if GTKMM_CHECK_VERSION(3,16,0) menu_label->set_xalign(0.0); #else menu_label->set_alignment(0.0, 0.5); diff --git a/src/ui/dialog/new-from-template.cpp b/src/ui/dialog/new-from-template.cpp index ab46a55da..7e0c5b526 100644 --- a/src/ui/dialog/new-from-template.cpp +++ b/src/ui/dialog/new-from-template.cpp @@ -32,7 +32,7 @@ NewFromTemplate::NewFromTemplate() _create_template_button.set_halign(Gtk::ALIGN_END); _create_template_button.set_valign(Gtk::ALIGN_END); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) _create_template_button.set_margin_end(15); #else _create_template_button.set_margin_right(15); diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 07fdb2bd7..2be1f115f 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -282,7 +282,7 @@ Gtk::MenuItem& ObjectsPanel::_addPopupItem( SPDesktop *desktop, unsigned int cod } Gtk::Label *menu_label = Gtk::manage(new Gtk::Label(label, true)); -#if WITH_GTKMM_3_16 +#if GTKMM_CHECK_VERSION(3,16,0) menu_label->set_xalign(0.0); #else menu_label->set_alignment(0.0, 0.5); diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 4f1e5cd6f..826737c2c 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -30,7 +30,7 @@ #include "file.h" #include -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) # include #endif @@ -175,7 +175,7 @@ sp_create_window(SPViewWidget *vw, bool editable) gint full = prefs->getBool("/desktop/geometry/fullscreen"); gint maxed = prefs->getBool("/desktop/geometry/maximized"); if (pw>0 && ph>0) { -#if WITH_GTKMM_3_22 +#if GTKMM_CHECK_VERSION(3,22,0) auto const display = Gdk::Display::get_default(); auto const monitor = display->get_primary_monitor(); diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp index 8b8e663a5..345864a44 100644 --- a/src/ui/widget/preferences-widget.cpp +++ b/src/ui/widget/preferences-widget.cpp @@ -96,7 +96,7 @@ void DialogPage::add_line(bool indent, label_widget->set_mnemonic_widget(widget); if (indent) { -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) label_widget->set_margin_start(12); #else label_widget->set_margin_left(12); @@ -112,7 +112,7 @@ void DialogPage::add_line(bool indent, if (label == "") { if (indent) { -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) hb->set_margin_start(12); #else hb->set_margin_left(12); diff --git a/src/widgets/sp-attribute-widget.cpp b/src/widgets/sp-attribute-widget.cpp index 89ce191ee..6116d3be5 100644 --- a/src/widgets/sp-attribute-widget.cpp +++ b/src/widgets/sp-attribute-widget.cpp @@ -160,7 +160,7 @@ void SPAttributeTable::set_object(SPObject *object, ll->set_halign(Gtk::ALIGN_END); ll->set_valign(Gtk::ALIGN_CENTER); ll->set_vexpand(); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) ll->set_margin_start(XPAD); ll->set_margin_end(XPAD); #else @@ -177,7 +177,7 @@ void SPAttributeTable::set_object(SPObject *object, ee->set_text (val ? val : (const gchar *) ""); ee->set_hexpand(); ee->set_vexpand(); -#if WITH_GTKMM_3_12 +#if GTKMM_CHECK_VERSION(3,12,0) ee->set_margin_start(XPAD); ee->set_margin_end(XPAD); #else -- cgit v1.2.3 From d9b5708bc6e3d303bb15a1f03774eb2cb8b01de2 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Mon, 25 Dec 2017 17:20:12 +0000 Subject: sp-marshal: fix deprecation --- src/helper/sp-marshal.list | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helper/sp-marshal.list b/src/helper/sp-marshal.list index 6014c820d..35f7858e2 100644 --- a/src/helper/sp-marshal.list +++ b/src/helper/sp-marshal.list @@ -1,5 +1,5 @@ # marshallers for sodipodi -NONE:POINTER,UINT +VOID:POINTER,UINT BOOLEAN:POINTER BOOLEAN:POINTER,UINT BOOLEAN:POINTER,POINTER -- cgit v1.2.3 From 2a5ed8387709c5d2108dc8213b7a4e9bdfb90685 Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Mon, 25 Dec 2017 17:27:14 +0000 Subject: Fix FTBFS with GtkMM < 3.14 (lp:1740024) --- src/ui/dialog/symbols.cpp | 6 +++--- src/ui/dialog/symbols.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 60c9b2b32..1642ff04c 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -192,7 +192,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : scroller->add(*Gtk::manage(icon_view)); scroller->set_hexpand(); scroller->set_vexpand(); -#if GTK_CHECK_VERSION(3,2,4) +#if GTKMM_CHECK_VERSION(3,14,0) overlay = new Gtk::Overlay(); overlay->set_hexpand(); overlay->set_vexpand(); @@ -447,7 +447,7 @@ void SymbolsDialog::rebuild() { } } void SymbolsDialog::showOverlay() { -#if GTK_CHECK_VERSION(3,2,4) +#if GTKMM_CHECK_VERSION(3,14,0) Glib::ustring current = Glib::Markup::escape_text(symbol_set->get_active_text()); overlay_icon->set_from_icon_name("none", iconsize); if (current == ALLDOCS && !l.size()) @@ -495,7 +495,7 @@ void SymbolsDialog::showOverlay() { } void SymbolsDialog::hideOverlay() { -#if GTK_CHECK_VERSION(3,2,4) +#if GTKMM_CHECK_VERSION(3,14,0) overlay_opacity->hide(); overlay_icon->hide(); overlay_title->hide(); diff --git a/src/ui/dialog/symbols.h b/src/ui/dialog/symbols.h index 6e49939af..fc5c861ed 100644 --- a/src/ui/dialog/symbols.h +++ b/src/ui/dialog/symbols.h @@ -132,7 +132,7 @@ private: Gtk::Button* more; Gtk::Button* fewer; Gtk::HBox* tools; -#if GTK_CHECK_VERSION(3,2,4) +#if GTKMM_CHECK_VERSION(3,14,0) Gtk::Overlay* overlay; #endif Gtk::Image* overlay_icon; -- cgit v1.2.3